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会优先使用自定义的数据源

 

posted @ 2019-12-05 23:00  雷雨客  阅读(952)  评论(0编辑  收藏  举报