热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpringBoot2.1.2&SpringCloudGreenwich升级记录

节前没有新业务代码,正好Greenwich刚发布,于是开始为期四天的框架代码升级。之前的版本是springboot1.5.10,springcloudEdgware.SR3依赖升级

节前没有新业务代码,正好Greenwich刚发布,于是开始为期四天的框架代码升级。

之前的版本是 spring boot 1.5.10 , spring cloud Edgware.SR3

依赖升级

  • 增加依赖管理插件 apply plugin: 'io.spring.dependency-management'
  • spring-cloud-starter-eureka → spring-cloud-starter-netflix-eureka-client
  • spring-cloud-starter-feign → spring-cloud-starter-openfeign
  • gradle版本要求4.4

boot : spring-boot-starter-data-jpa

  • delete → deleteById
  • findone → findById

    这个改动确实大,返回值变成了Optional,合理是合理的,只改的真多。。

boot : spring-boot-starter-data-redis

Jedis → Lettuce

还好并没有使用它的autoconfiguration,配置上有一个小坑,Jedis的redis.timeout是表示connection timeout, 而Lettuce是表示command timeout,之前配置成0的,如果set到Lettuce的commandtimeout里面那就要抛异常了。

配置:

可以在build.gradle中加入,启动时会检查配置是否兼容

compile "org.springframework.boot:spring-boot-properties-migrator"

注意:完成迁移后需要删除

《Spring Boot 2.1.2 & Spring Cloud Greenwich 升级记录》

警告如上图会告知最新的配置格式

boot: spring-boot-starter-actuator

endpoint的暴露方式变化,management.endpoints.web.exposure.include = "*" 表示暴露所有endpoints,如果配置了security那么也需要在security的配置中开放访问/actuator路径

boot: spring-boot-starter-security

自动注入的AuthenticationManager可能会找不到

If you want to expose Spring Security’s AuthenticationManager as a bean, override the authenticationManagerBean method on your WebSecurityConfigurerAdapter and annotate it with @Bean.

cloud : eureka

各个项目在注册中心里面的客户端实例IP显示不正确,需要修改每个项目的

bootstarp.yml

  • ${spring.cloud.client.ipAddress} → ${spring.cloud.client.ip-address}

boot: spring-boot-starter-test:

  • org.mockito.Matchers → org.mockito.ArgumentMatchers 注意build时的warning
  • Mock方法时请使用Mocikto.doReturn(…).when(…),不使用when(…).thenReturn(…),否则@spybean的会调用实际方法

其他问题

  1. 版本升级后会有deprecated的类或方法,所以要注意看console中build的warning信息
  2. 由于spring cloud依赖管理插件强制cuator升级到4.0.1,导致我们使用的elestic-job不能正常工作,只能强行控制版本。

    dependencyManagement {
    imports {
    mavenBom "org.springframework.cloud:spring-cloud-dependencies:${SPRING_CLOUD_VERSION}"
    }
    dependencies {
    dependency 'org.apache.curator:curator-framework:2.10.0'
    dependency 'org.apache.curator:curator-recipes:2.10.0'
    dependency 'org.apache.curator:curator-client:2.10.0'
    }
    }

  3. 如果启用出现error,报bean重复,首先确认是不是故意覆盖,如重写spring-boot自带的bean,如是,可以在bootstrap.yml加入

    spring.main.allow-bean-definition-overriding=true

  4. FeignClient注解增加了contextId属性

    @FeignClient(value = "foo", cOntextId= "fooFeign")

    此contextId即表示bean id,所有注入使用时需要

    @Autowried
    FooFeign fooFeign

    如果不写contextId,当多个class都是@FeignClient(“foo”),即会认为是同一个bean而排除上一条所说的warning


推荐阅读
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 基于Linux开源VOIP系统LinPhone[四]
    ****************************************************************************************** ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • .NET Core 托管服务优化与实践
    在.NET Core应用中,托管服务的形式主要分为进程内托管(InProcess)和进程外托管(OutOfProcess)。这两种托管方式各有优缺点,本文将深入探讨它们的特点,并结合实际案例,介绍如何根据具体需求选择合适的托管模式,以实现性能优化和资源利用的最大化。此外,文章还将分享一些实用的配置技巧和最佳实践,帮助开发者提升应用的稳定性和可维护性。 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • Spring框架中枚举参数的正确使用方法与技巧
    本文详细阐述了在Spring Boot框架中正确使用枚举参数的方法与技巧,旨在帮助开发者更高效地掌握和应用枚举类型的数据传递,适合对Spring Boot感兴趣的读者深入学习。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • addInstrumentedPackage 方法不支持指定单一类进行 instrumentation ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
author-avatar
感觉ly_382
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有