SpringBoot中数据源配置
一、SpringBoot中默认的数据源
SpringBoot中默认的数据源是HikariDataSource
下面测试一下(pom.xml无需额外添加依赖,application.yml中简单配置如下,不配置会报错)
spring: datasource: url: jdbc:mysql://localhost
@SpringBootApplication public class App { public static void main(String[] args) { ConfigurableApplicationContext context=SpringApplication.run(App.class, args); DataSource ds=context.getBean(DataSource.class); System.out.println("默认数据源是:"+ds); context.close(); } }
二、SpringBoot中默认整合的5个数据源
在org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration类中可以查看。
将某一个已整合的数据源设置为默认数据源,如使用tomcat-jdbc的数据源
1) 方式1:排除默认依赖,添加新依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> <exclusions> <exclusion> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jdbc</artifactId> </dependency>
2)方式2:添加新依赖,并在配置文件中指定新依赖
<dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jdbc</artifactId> </dependency>
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
三、SpringBoot中使用自定义数据源
举例说明,如何使用DruidDataSource数据源
1)添加依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.25</version> </dependency>
2)将新的数据源装配为bean
@SpringBootConfiguration public class DBConfiguration { @Autowired private Environment environment; @Bean public DataSource createDateSource(){ DruidDataSource dataSource=new DruidDataSource(); dataSource.setDriverClassName(environment.getProperty("spring.datasource.driverClassName")); dataSource.setUrl(environment.getProperty("spring.datasource.url")); dataSource.setUsername(environment.getProperty("spring.datasource.username")); dataSource.setPassword(environment.getProperty("spring.datasource.password")); return dataSource; } }
SpringBoot会优先使用自定义的数据源