問題1:Failed to configure a DataSource.
報錯信息節選如下所示:
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
Action:
Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
出現這個問題的原因,大部分是由於spring - datasource - url沒有加載成功,如下所示:
-
DataSourceAutoConfiguration會自動加載
-
沒有配置spring - datasource - url 屬性
-
spring - datasource - url 配置的地址格式有問題
-
配置 spring - datasource - url的文件沒有加載
而導致Mybatis沒有找到合適的加載類。可以嘗試通過如下4種方式進行解決:
1. 嘗試排除類的autoconfig
@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
2.確認spring - datasource - url 屬性的配置
在application.properties或application.xml文件種進行了spring-datasource-url的有效配置。
application.xml文件,mysql-connector-java 6.0.x 及以上版本配置
spring:
datasource:
url:jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
application.properties文件,mysql-connector-java 6.0.x 及以上版本配置
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
3. 確認spring - datasource - url 配置的地址格式沒有問題
校對2中的url地址是否有效,是否正確,這兩個文件中書寫url時均不需要轉義字符。
4. 確認配置 spring - datasource - url的文件有效加載
在pom.xml文件中加入類似如下所示的代碼,確保配置了spring - datasource - url的文件有效加載
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<!--引入所需環境的配置文件-->
<include>application.properties</include>
</includes>
</resource>
</resources>
</build>
問題2:時區問題
spring boot項目常用的時區問題解決方式,有兩個。
1. 在application.properties或application.xml文件中進行如下配置:
spring.jackson.time-zone=GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
2. 在spring - datasource - url(mysql-connector-java 6.0.x 及以上版本)配置時,指定時區
spring.datasource.url=jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai