升级SpringBoot 2.1.6RELEASE 目前修改点
1. org.springframework.security.oauth.config ClientDetailsServiceConfigurer 配置修改
org.springframework.security.oauth2 配置在此省略
ClientDetailsServiceConfigurer:这个configurer定义了客户端细节服务修改 重点这里的.secret必须使用加密字符串(无论使用内存 redis 数据库 存放token令牌 )必须要加密校验
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
// @formatter:off
clients.inMemory().withClient(CLIENT_ID)
.authorizedGrantTypes("password", "refresh_token")
.scopes("read", "write", "trust")
.resourceIds(RESOURCE_ID)
.secret(new BCryptPasswordEncoder().encode(Constant.SECURITY_SERVER))//这里重点 1.5.9版本的jar 无此校验 2.X 后 不加会Encoded password does not look like BCrypt
.accessTokenValiditySeconds(Math.toIntExact(TimeUnit.DAYS.toSeconds(30)))
.refreshTokenValiditySeconds(Math.toIntExact(TimeUnit.DAYS.toSeconds(30)));
// @formatter:on
}
2. controller 层单独参数就是要默认传 eg: String param param不传过不了框架 可用 @RequestParam(require=false)
3. 接口URL中不能出现双反斜杠 (调查Spring security 5.X 修改了源码)(调用接口自行检查)
4. 日期默认返回 UTC 标准格式 而不是1.X版本的long时间戳了
如果想返回long 时间戳 配置文件
spring.jackson.serialization.write-dates-as-timestamps = true
但是 sql 不能使用 UNIX_TIMESTAMP 否则报错 TIMESTAMP cannot Long 个人理解 转两次long 报错
5. 数据库连接池默认更新为目前口碑性能最强的HikariCP
----- Hikari 连接池配置详细配置请访问https://github.com/brettwooldridge/HikariCP
// 目前配置信息如下(需要根据系统实际使用情况优化)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
## 最小空闲连接数量
spring.datasource.hikari.minimum-idle=5
## 空闲连接存活最大时间,默认600000(10分钟)
spring.datasource.hikari.idle-timeout=180000
## 连接池最大连接数,默认是10
spring.datasource.hikari.maximum-pool-size=10
## 此属性控制从池返回的连接的默认自动提交行为,默认值:true
spring.datasource.hikari.auto-commit=true
## 连接池母子
spring.datasource.hikari.pool-name=MyHikariCP
## 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
spring.datasource.hikari.max-lifetime=1800000
## 数据库连接超时时间,默认25秒,即25000 (目前pc web 和接口的超时时间)
spring.datasource.hikari.connection-timeout=25000
spring.datasource.hikari.connection-test-query=SELECT 1