【重构小程序】升级JDK1.8、SpringBoot2.x到JDK17、Springboot3.x(一)
- 互联网
- 2025-09-19 03:42:01

前言
最近想着把大火的deepseek 迁移到小程序里,基于刷题小程序的数据库做一个RAG应用,来进一步扩展答案解析,帮助用户解答相关问题。但是由于之前做的项目都要老了,并不支持spring 的AI模块,因此,我打算先升级一下系统。
一、升级JDK 1.8 到 JDK 171、首先从官网上下载一个JDK17的包,windows系统可能有这两种包(压缩包和安装包)
直接下载压缩包,放在一个中文目录下,然后修改环境变量。
然后看一下java版本 java --version 是否修改成功。
修改项目中的设置 如下
二、升级Springboot 2.x 到 Springboot 3.x
修改pom文件
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.2.0</version> <relativePath/> </parent> <properties> <java.version>17</java.version> </properties>这里面需要注意的东西还挺多的
1、javax.servlet.*相关的类找不到,需要切换依赖为jakarta.servlet。修改javax.servlet.*为jakarta.servlet.*。
<!--jakarta.servlet start --> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> </dependency> <!--jakarta.servlet end -->2.、mybatis-plus-boot-starter
<!-- mybatis-plus start--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> <version>3.5.5</version> </dependency> <!-- mybatis-plus end-->3、redis
spring.data.redis.host=127.0.0.1 #Redis服务器连接端口 spring.data.redis.port=6379 #连接池最大连接数(使用负值表示没有限制) spring.data.redis.lettuce.pool.max-active=20 #连接池最大阻塞等待时间(使用负值表示没有限制) spring.data.redis.lettuce.pool.max-wait=-1 #连接池中的最大空闲连接 spring.data.redis.lettuce.pool.max-idle=5 #连接池中的最小空闲连接 spring.data.redis.lettuce.pool.min-idle=0 #连接超时时间(毫秒) spring.data.redis.timeout=18000004、commons-pool2
Spring Boot 的 spring-boot-starter-data-redis 依赖了 Lettuce 作为 Redis 客户端。
Lettuce 依赖于 commons-pool2 来实现连接池功能。
因此我们也需要更新一下commons-pool2的版本。
<dependency> <groupId>org.apache mons</groupId> <artifactId>commons-pool2</artifactId> <version>2.11.1</version> </dependency>4、Spring-Security
咋WebSecurityConfig显示的注册authenticationManager为一个Bean
@Bean public AuthenticationManager authenticationManager(AuthenticationConfiguration config) throws Exception { return config.getAuthenticationManager(); }使用SecurityFilterChain替代WebSecurityConfigurerAdapter;
@Bean public SecurityFilterChain securityFilterChain(HttpSecurity http, CustomizeAuthenticationEntryPoint customizeAuthenticationEntryPoint, CustomizeAccessDeniedHandler customizeAccessDeniedHandler) throws Exception { http .sessionManagement(session -> session .sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED) ) .authenticationProvider(thirdLoginAuthenticationProvider) .authorizeHttpRequests(authorize -> authorize .requestMatchers( "/swagger-resources/configuration/ui", "/swagger-resources", "/swagger-resources/configuration/security", "/swagger-ui.html", ).permitAll() .anyRequest().authenticated() ) .exceptionHandling(exception -> exception .accessDeniedHandler(customizeAccessDeniedHandler) .authenticationEntryPoint(customizeAuthenticationEntryPoint) ) .cors(cors -> cors.configure(http)) .csrf(csrf -> csrf.disable()); return http.build(); }Spring-Security 6.x的版本中,对于session的管理也发生了一些变化,需要手动将 SecurityContext 保存到 HttpSession 中。
HttpSession session = request.getSession(); session.setAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY, SecurityContextHolder.getContext());修改到这里位置,就可以启动项目了。
【重构小程序】升级JDK1.8、SpringBoot2.x到JDK17、Springboot3.x(一)由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【重构小程序】升级JDK1.8、SpringBoot2.x到JDK17、Springboot3.x(一)”