数据源配置
1、application.properties
#服务端口
server.port=8080
#配置数据源的类型 数据源是org.apache.tomcat.jdbc.pool.DataSource
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#驱动的全限定类名
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#连接池数据源初始化大小,最小,最大
spring.datasource.initialSize=5
#连接池里始终应该保持的最小连接数。(用于 DBCP 和 Tomcat 连接池。)
spring.datasource.minIdle=5
#连接池中的最大活跃连接数。
spring.datasource.maxActive=50
#连接池在等待返回连接时,最长等待多少毫秒再抛出异常。
spring.datasource.maxWait=60000
#在两次空闲连接验证、弃用连接清理和空闲池大小调整之间睡眠的毫秒数。
spring.datasource.timeBetweenEvictionRunsMillis=60000
#一个空闲连接被空闲连接释放器(如果存在的话)优雅地释放前,最短会在连接池里停 留多少时间。
spring.datasource.minEvictableIdleTimeMillis=300000
#在连接池里的连接返回给调用者或连接池时,要执行的验证 SQL 查询
spring.datasource.validationQuery=SELECT 1 FROM DUAL
#在连接空闲时是否要进行测试。
spring.datasource.testWhileIdle=true
#从连接池中借用连接时是否要进行测试。
spring.datasource.testOnBorrow=false
#在将连接归还到连接池时是否要进行测试。
spring.datasource.testOnReturn=false
#是否要将 Statement 放在池里。 打开PSCache,并且指定每个连接上PSCache的大小
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
#配置监控统计拦截的filters,去掉后监控界面sql无法统计,’wall’用于防火墙
spring.datasource.filters=stat,wall,log4j2
#合并多个DruidDataSource的监控数据
spring.datasource.useGlobalDataSourceStat=false
#设置创建连接时使用的属性(用于 DBCP 连接池)
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
spring.datasource.url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/bigdata?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=xxxx
spring.datasource.password=xxxxxx
2、 application.yaml
server:
port: 8081
spring:
datasource:
url: jdbc:mysql://xxx.xxx.xxx.xxx:3306/bigdata?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
项目中同时含有两种配置文件 application.properties 优先
过程中的错误
问题1:Failed to bind properties under 'spring.datasource.type' to java.lang.Class<javax.sql.DataSource>:
解决方式:在pom文件中加入相应的依赖
<!-- 数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.22</version>
</dependency>
问题2:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
解决:缺少依赖
<!-- mysql数据库连接 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
注意版本号如果小于6,驱动选择 com.mysql.jdbc.Driver