springboot1.5.9升级至2.1.6

继续前面的优化,今天升级了springboot的版本
1、修改版本,springboot和springcloud的版本都需要升级
   
        org.springframework.boot
        spring-boot-starter-parent
        2.1.6.RELEASE
   

   
  
           
                org.springframework.cloud
                spring-cloud-dependencies
                Greenwich.RELEASE
                pom
                import
           

  

 

   SpringBoot和SpringCloud的版本对应关系可以去springboot官网寻找,在help一栏有一个迁移专题https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide,可惜的是在公司github是打不开的,于是我又去了springcloud官网看看,https://spring.io/projects/spring-cloud,在该页面找到了版本对应表。网上有人贴出https://start.spring.io/actuator/info,这个也可以看到映射表
2、升级版本之后开始编译,毫无疑问出现了一堆错误。
   (1)@FeignClient报错,原因是jar包换了,以前是
     
   org.springframework.cloud
   spring-cloud-starter-feign
  

   现在要改为:
       
            org.springframework.cloud
            spring-cloud-starter-openfeign
       

   (2)找不到log4j,直接导入新的slf4j
   import org.slf4j.Logger;
   import org.slf4j.LoggerFactory;
   private static final Logger LOG = LoggerFactory.getLogger(CustomService.class);
   (3)redis类编译报错,查看pom文件后发现jedis在新版的spring-data-redis中已经不包含了,需要额外引入:
       
            redis.clients
            jedis
            2.9.0
       

   (4)mysql报错 查看源码后发现是一些函数名字变了,直接改好就行,另外就是返回的类型变成了Optional,稍微处理下就能兼容了。此处比较简单,代码略过。
3、编译问题解决之后开始启动,当然又获得了一个错误大礼包
   (1)Feign报错:The bean 'xxx.FeignClientSpecification', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.  解决方法就在异常的下方:Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true   原因呢,就是feignClient的名字有重复。
   (2)java.lang.ClassNotFoundException: org.springframework.kafka.transaction.KafkaTransactionManager    感觉是版本问题,上网查了下,还真是,将spring-kafka 升级到2.2.x即可
   (3)报错:
    Invalid characters: 'C'
    Bean: clusterConfig
    Reason: Canonical names should be kebab-case ('-' separated), lowercase alpha-numeric characters and must start with a letter
    配置项中不能有大写,用-分隔,并且-后面必须跟小写
4、本地启动成功之后,修改容器配置文件中的健康检查路径   /health  改为:/actuator/health
5、调用/actuator/health接口,检查运行状态 

6、上流水线,竟然编译错误,eureka的有个包提示找不到版本号  看样子又是升级后不包含了,直接去掉就可以了 

  
   org.springframework.cloud
   spring-cloud-starter-eureka
  

你可能感兴趣的:(工作)