-
条件:不引⼊druid-spring-boot-starter只依赖druid.jar,不指定spring.datasource.type。
-
结果:注入的数据源是tomcat的数据源。
-
解析:依赖的mybatis-spring-boot-starter工程依赖了tomcat的数据源,spring-boot-autoconfigure-starter的DataSourceAutoConfiguration自动注入类会在不指定数据源的情况下,判断路径中是否存在默认的4种数据源(Hikari,Tomcat,Dbcp,Dbcp2)的其一,如果有就注入。
- 条件:不引入druid-spring-boot-starter只依赖druid.jar ,指定spring.datasource.type为DruidDataSource。
- 结果:注入了DruidDataSource数据源,但配置文件中的druid配置不会生效。
- 解析: 指定了依赖的数据源后,spring自动注入的starter会将指定的数据源注入,yml指定了druid数据源。@ConfigurationProperties注解的DataSourceProperties没处理druid部分的性能参数属性,只处理了数据源部分的属性。
【情况三】
- 条件:引⼊ druid-spring-boot-starter 不依赖druid.jar,指定spring.datasource.type为DruidDataSource。
- 结果:注入了DruidDataSource数据源, 配置文件中的druid配置也会生效。
- 解析:druid-spring-boot-starter自动配置类会在DataSourceAutoConfiguration之前先创建数据源,并且@ConfigurationProperties注入的DataSourceProperties包含了配置文件中druid的属性。
pom.xml依赖:
- <!-- 情况一、二 测试引入的依赖 -->
- <!--<dependency>-->
- <!--<groupId>com.alibaba</groupId>-->
- <!--<artifactId>druid</artifactId>-->
- <!--<version>${druid.version}</version>-->
- <!--</dependency>-->
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid-spring-boot-starter</artifactId>
- <version>1.1.10</version>
- </dependency>
- <dependency>
- <groupId>org.mybatis.spring.boot</groupId>
- <artifactId>mybatis-spring-boot-starter</artifactId>
- <version>RELEASE</version>
- </dependency>
yml配置:
- spring:
- datasource:
- type: com.alibaba.druid.pool.DruidDataSource # 当前数据源操作类型
- driver-class-name: com.mysql.jdbc.Driver # mysql驱动包
- url: jdbc:mysql://yourURL # 数据库名称
- username: yourusername
- password: yourpassword
- druid:
- initial-size: 5 # 初始化大小
- min-idle: 5 # 最小
- max-active: 20 # 最大
- max-wait: 60000 # 连接超时时间
- time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
- min-evictable-idle-time-millis: 300000 # 指定一个空闲连接最少空闲多久后可被清除,单位是毫秒
- validationQuery: select 'x'
- test-while-idle: true # 当连接空闲时,是否执行连接测试
- test-on-borrow: false # 当从连接池借用连接时,是否测试该连接
- test-on-return: false # 在连接归还到连接池时是否测试该连接
- filters: config,wall,stat
B、MyBatis配置
(编辑:ASP站长网)
|