Springboot1.5.x升级2.1.x心路历程

0708版本spring boot, spring cloud升级改造

  1. 版本升级情况

·         

o   Parent pom: 1.0.3 -> 1.0.4

o   Spring Boot Version: 1.5.7.RELEASE ->2.1.6.RELEASE

o   Spring Cloud Version: Edgware.RC1 ->Greenwich.SR2

o   Spring Version: 4.3.11.RELEASE -> 5.1.8.RELEASE

      2. 类引用变更

升级前

升级后

org.apache.commons.lang.StringUtils

org.apache.commons.lang3.StringUtils

org.springframework.cloud.netflix.feign.FeignClient

org.springframework.cloud.openfeign.FeignClient

org.springframework.boot.autoconfigure.web.HttpMessageConverters

org.springframework.boot.autoconfigure.http.HttpMessageConverters

org.springframework.cloud.netflix.feign.support.ResponseEntityDecoder

org.springframework.cloud.openfeign.support.ResponseEntityDecoder

org.springframework.cloud.netflix.feign.support.SpringDecoder

org.springframework.cloud.openfeign.support.SpringDecoder

org.apache.commons.lang.builder.ToStringBuilder

org.apache.commons.lang3.builder.ToStringBuilder

com.netflix.loadbalancer.Server

net.sf.jsqlparser.schema.Server

      3. 升级时需注意

  • 相关的所有依赖的pom文件父版本(parent version)需升级为最新parent version(1.0.4)
  • 按照依赖关系进行改造:

如Dict应用关联依赖关系为:toolbox -> share ->dict-share ->dict,则依次处理toolbox, share, dict-share, dict模块。

      4. 问题汇总:

·         

升级前:

@Bean

public CacheManagercacheManager(RedisTemplateredisTemplate) {

RedisCacheManagercacheManager = new RedisCacheManager(redisTemplate);

cacheManager.setDefaultExpiration(defaultExpireTime);

    return cacheManager;

}

升级后:

@Bean

public CacheManagercacheManager(RedisConnectionFactoryredisConnectionFactory) {

//初始化一个RedisCacheWriter

RedisCacheWriterredisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory);

//设置CacheManager的值序列化方式为json序列化

RedisSerializerjsonSerializer = new GenericJackson2JsonRedisSerializer();RedisSerializationContext.SerializationPairpair = RedisSerializationContext.SerializationPair

            .fromSerializer(jsonSerializer);

RedisCacheConfigurationdefaultCacheConfig=RedisCacheConfiguration.defaultCacheConfig()

            .serializeValuesWith(pair);

//设置默认超过期时间

defaultCacheConfig.entryTtl(Duration.ofSeconds(defaultExpireTime));

//初始化RedisCacheManager

return new RedisCacheManager(redisCacheWriter, defaultCacheConfig);

}

解决办法,引入spring-cloud-starter-netflix-ribbon依赖:

       

            org.springframework.cloud

            spring-cloud-starter-netflix-ribbon

            2.1.2.RELEASE

        

可能原因:服务配置了降级策略。

解决办法:配置降级策略后,@FeignClient注解的类上不要再使用@RequestMapping注解,可在实现类上使用。

解决办法:bootstrap.yml增加配置:spring.main.allow-bean-definition-overriding=true

解决该问题,具体原因见:网络资料

示例如下:

spring boot 1.x

spring:

   http:

      multipart:

         max-file-size: 10Mb

         max-request-size: 50Mb

spring boot 2.x

spring:

   servlet:

      multipart:

         max-file-size: 10MB

         max-request-size: 50MB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值