Spring boot 2.1.x 造成的问题

1. mysql-conector-java 版本默认使用了 8.0.1.5

导致:项目启动时的警告:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

并且由于我的mysql的版本还是5.6.16,并且我的数据库链接url没有加上serverTimezone=Asia/Shanghai这一参数,导致我的数据库的时间我java项目的时间相隔13个小时,据说这也是因为:

JDBC 与 MySQL 因 “CST” 时区协商误解导致

名为 CST 的时区是一个很混乱的时区,在与 MySQL 协商会话时区时,Java 会误以为是 CST -0500,而非 CST +0800

CST 时区

名为 CST 的时区是一个很混乱的时区,有四种含义:

  • 美国中部时间 Central Standard Time (USA) UTC-06:00
  • 澳大利亚中部时间 Central Standard Time (Australia) UTC+09:30
  • 中国标准时 China Standard Time UTC+08:00
  • 古巴标准时 Cuba Standard Time UTC-04:00

今天是“4月28日”。为什么提到日期?因为美国从“3月11日”至“11月7日”实行夏令时,美国中部时间改为 UTC-05:00,与 UTC+08:00 相差 13 小时。

所以:在升级了依赖的版本之前一定要查询可能产生的影响,并多方面测试,避免造成不必要的麻烦。

我的解决方式是mysq-connector还是强制使用原来较低的版本版本,就不会产生相差13个小时和启动的警告了。

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.41</version>
</dependency>

参考:

https://juejin.im/post/5902e087da2f60005df05c3d?utm_source=tuicool&utm_medium=referral

上一篇:jquery1.9学习笔记 之层级选择器(二)


下一篇:react-router v4中 HashRouter 和 BrowserRouter的使用