012 數據訪問---數據源的配置
阿新 • • 發佈:2018-08-18
cti 默認 bean contex ica framework local 數據訪問 host
一 .概述
在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 { @Resourceprivate 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.DataSource2018-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數據源的配置了.在下一節我們就利用這個特性進行數據源的配置.
012 數據訪問---數據源的配置