背景:服务器检测到应用漏洞,需要更新对应的 spring-web 依赖版本。 升级 spring-web 依赖至6.1.4 ,对应就要将 SpringBoot 的版本进行升级至3.2.3 ,SpringBoot3.0项目要求JDK最低为17 。那么好,接下来问题来了?项目启动报了个大错。
错误信息- Caused by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
可以参考下述漏洞影响范围,只要升级的时候保证不在这个范围就可以了
- Spring Framework 6.1.0 - 6.1.3
- Spring Framework 6.0.0 - 6.0.16
- Spring Framework 5.3.0 - 5.3.31
直接出答案
刚开始是知道由于@MapperScan这个注解导致的问题 ,而@MapperScan是由baomidou所提供,那么有两种解决方案
Option 1:更新 com.baomidou.mybatis-plus 依赖版本
//原依赖版本
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot-starter</artifactId>
<version>2.3.4</version>
</dependency>
//修改后的依赖版本
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.5</version>
</dependency>
Option 2:启动类 弃用@MapperScan ,将要扫描的包写在 @SpringBootApplication注解的参数中
//原注解
@SpringBootApplication
@MapperScan("com.peate.mapper")
public class PeateApplication {
public static void main(String[] args) {
SpringApplication.run(PeateApplication.class, args);
}
}
//修复后注解
@SpringBootApplication(scanBasePackages = "com.peate.mapper")
public class PeateApplication {
public static void main(String[] args) {
SpringApplication.run(PeateApplication.class, args);
}
}
重启服务,成功的跑起来啦
浅浅松口气~