总结SpringBoot1.x迁移到2.x需要注意的问题

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: SpringBoot1.x和SpringBoot2.x版本差异化还是比较大的,有些三方依赖组件有些是基于2.0版本为标准升级的,当我们将项目由1.0升级到2.0时会出现依赖的方法不存在或方法错误,需要逐个去调整,下面总结了我们升级实践过程中遇到的一些问题和网友总结的一些问题。

  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

*/

@Configuration

publicclass WebMvcConfiguration implements 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文件

@Configuration

publicclass WebMvcConfiguration implements 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/");


   }

 

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
Kubernetes 负载均衡 网络协议
k8s中部署springboot项目
k8s中部署springboot项目
887 0
|
Java 数据库 Maven
SpringBoot搭建多数据源
SpringBoot搭建多数据源
42 0
|
1月前
|
XML Java 测试技术
【SpringBoot系列】初识Springboot并搭建测试环境
【SpringBoot系列】初识Springboot并搭建测试环境
73 0
|
5月前
|
XML JSON Java
SpringBoot(四)之基础配置
application.yml为主配置文件,如果要分环境,则需要创建 application-{profile}.yml的环境配置。
38 0
|
6月前
|
Java
SpringBoot获取配置中的数据
SpringBoot获取配置中的数据
66 0
|
Java 开发工具 git
迁移spring项目到springboot
迁移spring项目到springboot
99 0
|
Oracle Java 关系型数据库
阿里云部署SpringBoot项目(一)
阿里云部署SpringBoot项目
1383 0
|
Java 数据库
Springboot常见问题汇总
Springboot常见问题汇总
106 0
|
开发框架 Java 数据库连接
SpringBoot升级到3.0
可以看到,2022年2.3.x版本就已经停止维护了,2.4.x和2.5.x也将在今年停止了, 但是呢,好多公司还在用着2.3 、 2.2的版本。 可以看到后面主推的将是3.x,而JDK版本也一下子涨到了17,看来后面确实是要大更新了呀。
993 0
SpringBoot升级到3.0
|
XML Kubernetes Java
教你使用k8s来部署springboot服务
在看到此文章之前,想必你已经知道如何启动一个spring boot应用,知道如何通过docker运行你的spring boot服务。
785 0