1. 程式人生 > >帶著萌新看springboot原始碼10(springboot+JdbcTemplate+druid)

帶著萌新看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.....有時間再慢慢寫。。