SpringBoot1.x和SpringBoot2.x版本差异化还是比较大的,有些三方依赖组件有些是基于2.0版本为标准升级的,当我们将项目由1.0升级到2.0时会出现依赖的方法不存在或方法错误,需要逐个去调整,下面总结了我们升级实践过程中遇到的一些问题和网友总结的一些问题。
Data 模块也做了许多更新和提升
1) 2.x 默认使用 HikariCP 连接池;
2) 更加合理化的优化了数据库初始化逻辑;
3) spring.jdbc.template 自动配置现在可以通过 spring.jdbc.template 属性定制;
4) 提供了新配置 spring.jdbc.template 方便分页和排序;
5) 对数据库 spring.jdbc.template 自动化配置支持;
6) 可以高级定制 MongoDB 客户端;
7) 可以通过 spring.cache.redis.* 来配置 Redis 缓存默认值。
静态资源文件处理
切记,springboot2的静态资源必须手动设置路径映射才可以访问。
1.在 resources下面手动新建文件夹,楼主新建的文件夹名称为 static,当然也可以叫其他名字,比如 demo。然后把所有的静态资源文件放到 static 或者 demo 下。
2.java 代码配置,切记,在Spring Boot 1.5版本都是靠重写WebMvcConfigurerAdapter的方法来添加自定义拦截器,消息转换器等。SpringBoot 2.0 后,该类被标记为@Deprecated。因此我们只能靠实现WebMvcConfigurer接口来实现。
/** * SpringBoot中访问doc.html报404的解决办法
* @author james
*/@ConfigurationpublicclassWebMvcConfigurationimplements WebMvcConfigurer {
/** * 资源处理器
*
* @param registry
*/ @Override
publicvoid addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
registry.addResourceHandler("swagger-ui.html", "doc.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
Actuator加强
在 2.x 中,对执行器端点进行了许多改进,所有的 HTTP 执行端点现在都暴露在 /actuator路径下,并对 JSON 结果集也做了改善
Redis异常
Error:(28, 33) java: 对于RedisCacheManager(org.springframework.data.redis.core.RedisTemplate), 找不到合适的构造器
解决SpringBoot2.0中:
@Bean
public CacheManager cacheManager(RedisConnectionFactory factory) {
RedisCacheManager rcm = RedisCacheManager.builder(factory).build();
return rcm;
}
SpringBoot2中访问doc.html报404的解决办法
添加WebMvcConfiguration文件
@ConfigurationpublicclassWebMvcConfigurationimplements WebMvcConfigurer {
/** * 资源处理器
*
* @param registry
*/ @Override
publicvoid addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
registry.addResourceHandler("swagger-ui.html", "doc.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}