一 .概述
在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[[email protected]]]
我们发现,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数据源的配置了.在下一节我们就利用这个特性进行数据源的配置.
原文地址:https://www.cnblogs.com/trekxu/p/9498586.html
时间: 2024-10-08 16:28:04