012 数据访问---数据源的配置

一 .概述

  在springboot之中,我们如果想要引入数据访问的操作,这个过程非常的简单.

  首先,我们需要引入对应的启动器.

  如下:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

我们配置一下数据源:

  我们找到我们的application.yml文件,进行如下的配置:

  datasource:
    url: jdbc:mysql://localhost:3306/mp
    username: root
    password: trek
    driver-class-name: com.mysql.jdbc.Driver

现在我们进行一下测试,看我们的数据源是否已经配置成功.

@RunWith(SpringRunner.class)
@SpringBootTest(classes=SpringbootApplicationStarter.class)
@Slf4j
public class JDBCTest {
    
    @Resource
    private DataSource datasource;
    
    @Test
    public void testGetConnection() throws Exception {
        log.info(datasource.getClass().toString());
        log.info(datasource.getConnection().toString());
    }
    
    
}

我们看下日志的输出:

2018-08-18 20:25:02.243  INFO 5204 --- [           main] com.trek.test.JDBCTest                   : class org.apache.tomcat.jdbc.pool.DataSource
2018-08-18 20:25:03.080  INFO 5204 --- [           main] com.trek.test.JDBCTest                   : ProxyConnection[PooledConnection[com.mysql.jdbc.JDBC4Connection@2ef0dd86]]

我们发现,springboot默认使用的就是Tomcat之中的数据源.


 二 . 数据源配置的分析

  按照之前我们的做法,springboot既然已经提供了默认的配置方式,那么一定会有一个配置类的存在.

我们找到对应的配置类,发现了如下的代码:  

    @Bean
    @ConditionalOnMissingBean
    public DataSourceInitializer dataSourceInitializer(DataSourceProperties properties,
            ApplicationContext applicationContext) {
        return new DataSourceInitializer(properties, applicationContext);
    }

我们看一下DataSourceProperties 到底是什么?

当我们看到配置的注解就明白了,在springboot启动的时候,就会对这个配置类进行配置,这样数据源的信息就被配置好了.

那么,我们现在需要找的就是Tomcat的数据源是在哪里被加载的.

在上面的代码之中,我们发现了Tomcat的数据源是怎么被配置成功的了.


四 .自定义数据源  

    /**
     * Generic DataSource configuration.
     */
    @ConditionalOnMissingBean(DataSource.class)
    @ConditionalOnProperty(name = "spring.datasource.type")
    static class Generic {

        @Bean
        public DataSource dataSource(DataSourceProperties properties) {
            return properties.initializeDataSourceBuilder().build();
        }

    }

我们在代码之中,在最下面发现啊了一个通用的配置信息. 我们就可以使用这种方式进行Druid数据源的配置了.在下一节我们就利用这个特性进行数据源的配置.

猜你喜欢

转载自www.cnblogs.com/trekxu/p/9498586.html