上一節把springboot和jdbcTemplate大概用法說了一下,以及大概看了一下源碼,還說了加載sql文件時的原理。
這一節來看看自動注入JdbcTemplate的原理,順便用一用Druid數據源(功能比較強大,可以想象成一個監督設備,可以監控很多東西)
話說,sql文件要放在類路徑下,建表sql(schema-all.sql或者schema.sql),插入數據的sql(data-all.sql或者data.sql),那能不能自定義名字呢?
1.自定義sql文件名稱
在yml文件里面,指定spring.datasource.schema和spring.datasource.data(我們配置的這個也會綁定到那個DataSourceProperties類上)
其實從上一節所說的那個監聽器里面的getScripts方法可以清晰的看到
2.自動配置JdbcTemplate原理(估計又是哪個自動配置類...嘿嘿!)
其實springboot內部就自動為我們配置好了JdbcTemplate,我們只需要加個@Autowired注解就能自動注入
具體的原理我們來看看一個自動配置類JdbcTemplateAutoConfiguration
3.使用Druid數據源以及數據源自動裝配原理
想要使用Druid數據源,必須先導入依賴
yml文件配置數據源(想要看看Druid獨有的所有屬性,可以點這個數據源進去看看)
這個時候注意,我們要監控web應用所有的行為,怎么監控呢?肯定是另外設置一個非常隱秘的url(對應一個servlet),並且我們訪問web應用,有的東西沒什么必要監控比如一些靜態html(這對應一個filter)。
所以,配置類中除了要配置一下數據源和yml文件綁定,還要另外設置一個Servlet,以及Filter
隨意找個配置類:
配置servlet初始化參數時,具體所有的可配置參數在StatViewServlaet的父類里面,不要忘記配置這個秘密的url。
過濾器配置
運行應用,輸入網址localhost:8080/druid/
效果展示:
到這里,Druid數據源的切換以及配置監控的功能算是初步過了一遍。具體的要自己去好好試試。不過,主要的是為什么可以這么用啊?下面就來看看這其中的自動配置原理。
各位可以多在這里看看,每個功能的自動配置類和配置類都可以在這里找到,找到jdbc
假如上面這些數據源都不是你想要用的,你還可以自定義的數據源(比如Druid等優秀的數據源),我們重點就來看看這里
可以點開看看maybeGetDrivaerClassName()方法和bind()方法
ok,大概的看了看自定義數據源的源碼,其實也就那樣,不過也提醒了我們,假如我們要更換數據源。可以先來看看這個配置類里面有沒有符合條件的,有的話直接導入依賴,然后sprin.datasource.type=xxx,以及修改一些默認參數;沒有的話就自定義,其實還是導入依賴,然后配置一下獨有的屬性(如果配置獨有屬性就要在配置類中配個DataSource了)。
這次是最基本的springboot+JdbcTemplate+Druid,后面可能還會整合一些其他的持久層框架,emmmm.....有時間再慢慢寫。。