1. 背景
项目原先的
Spring Boot
版本为1.5.4.RELEASE
,Spring Cloud
版本为Dalston.SR2
,升级后的Spring Boot
版本为2.0.0.M7
,Spring Cloud
版本为Finchley.M5
,因版本升级导致各组件API以及依赖包发生变化,下面是项目中用到的组件的升级方法。
2. Spring Security
项目使用
Oauth2
协议规范,认证的Token
令牌使用Redis
进行存储。
2.1 授权服务器(authorization server)
- 客户端配置的密码由原先的明文修改为密文。
@Configuration
@EnableAuthorizationServer
public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
clients.inMemory()
.withClient("android")
.scopes("xx")
.secret("$2a$10$sCeoatJoccD4y1ff8AhdROLd2u6AWYBwH7YrbWXxdk6fA4VGhGITm") // 原先的代码:.secret("android")
.authorizedGrantTypes("password", "authorization_code", "refresh_token");
}
}
2.2 资源服务器(resource server)
-
Spring Boot 2.0.0.M7
的autoconfigure
中关于ResourceServer
的自动配置已被移除,将被移到Spring Security
项目中,目前的替代方案为使用https://github.com/spring-projects/spring-security-oauth2-boot.git
,添加如下依赖即可:
<dependency>
<groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-autoconfigure</artifactId>
<version>2.0.0.BUILD-SNAPSHOT</version>
</dependency>
2.3 重写RedisTokenStore
- 针对
RedisTokenStore
出现的NoSuchMethodError RedisConnection.set([B[B)V
错误,目前解决方案是重写RedisTokenStore
第160行conn.set(accessKey, serializedAccessToken);
修改为conn.stringCommands().set(accessKey, serializedAccessToken);
3. ElasticSearch
由于项目部署在阿里云上,而阿里云推荐使用
REST API
与ElasticSearch
进行交互,因此项目由原先的Spring Data Elasticsearch
切换到Spring Data Jest
作为ElasticSearch
客户端。
- 依赖
<dependency>
<groupId>com.github.vanroy</groupId>
<artifactId>spring-boot-starter-data-jest</artifactId>
<version>3.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>io.searchbox</groupId>
<artifactId>jest</artifactId>
<version>5.3.2</version>
</dependency>
- 连接配置
spring:
data:
jest:
uri: http://192.168.1.222:9200
username: elastic
password: changeme
4. Spring Cloud Feign
项目使用
Feign
作为Rest
客户端进行远程调用,Spring Cloud
版本升级后,Feign
依赖变更为:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
5. log4j
Spring Boot 2.0.0.M7
已将log4j
依赖移除,而项目中用到的spring-cloud-stream-binder-kafka
依赖log4j
,因此需手动添加该依赖:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
相关推荐
英文原版第二版,Spring Boot 2.0 by Greg L. Turnquist (Author) Key Features Get up to date with the defining characteristics of Spring Boot 2.0 in Spring Framework 5 Learn to perform Reactive ...
learning spring boot 2.0 英文高清第二版,2017年11月出版。
Learning Spring boot 2.0,高清pdf, 内附随书源码。
Learning Spring Boot 2.0 Second Edition 学习Spring Boot必备资料
Spring Boot 2.0, 官方参考文档
Spring Boot 2.0深度实践之核心技术篇 学习视频教程中的源码
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot...
项目名称:WeAdmin版MongoDB集群网页管理工具(基于Spring Boot 2.0) 技术栈:主要采用Java语言,辅以JavaScript、CSS和HTML。 文件构成:总计158个文件,包括: - GIF动画:75个,用于界面交互提示和演示。 - ...
2018.02.Spring Boot 2.0 Cookbook 2nd
重新打包,降低下载所需要的积分数供大家下载,Good luck~
spring boot2.0集成docker插件,使用socket链接,dockerfile部署到docker服务器
spring 5 in action pdf ,Learning Spring Boot 2.0 pdf,Spring Microservices in Action-Manning.pdf
Spring Boot 2.0版本以上的源码 使用 Spring Boot 的优势 使用 Spring Boot 开发项目,会给我们带来非常美妙的开发体验,可以从以下几个方面展开来说明 Spring Boot 让开发变得更简单 Spring Boot 对开发效率的提升...
基于spring boot2.0编写的demo案例,有mq,redis,feign,configserver,网关,注册中心,security,oauth,mail等常用的使用案例全部都有
Learning Spring Boot2.0 2017.11版
采用Spring Boot2.0框架结合Jquery和Bootstrap前端技术项目来实现通用授权模块,面向实训教学
创建独立的Spring 应用程序;...形式运行Spring Boot 的项目,而无须其他服务器配置:对于配置, Spring Boot 提供Spring 框架的最 大自动化配置,大量使用自动配置,使得开发者对Spring 的配置尽量减少:此
基于Spring Boot2.0框架的信息管理系统的设计与实现