主页 > 互联网  > 

【重构小程序】升级JDK1.8、SpringBoot2.x到JDK17、Springboot3.x(一)

【重构小程序】升级JDK1.8、SpringBoot2.x到JDK17、Springboot3.x(一)
前言

最近想着把大火的deepseek 迁移到小程序里,基于刷题小程序的数据库做一个RAG应用,来进一步扩展答案解析,帮助用户解答相关问题。但是由于之前做的项目都要老了,并不支持spring 的AI模块,因此,我打算先升级一下系统。

一、升级JDK 1.8 到 JDK 17

1、首先从官网上下载一个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=1800000

4、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(一)