帶着萌新看springboot源碼10(springboot+JdbcTemplate+druid)


  上一節把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.....有時間再慢慢寫。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM