Spring Boot 原始碼分析 資料來源 + Mybatis 配置

molashaonian發表於2018-06-18

公司今年開始使用 Spring Boot 開發,當然使用 Spring Boot 也是大勢所趨,尤其是現在微服務的趨向,當然是選擇基於Spring Boot 的 Spring Cloud。(所謂的 Spring 全家桶,哈哈哈)

一日,閒來無事,都說 Spring Boot 習慣優於配置,但是這習慣它到底在哪裡配置實現了。

好奇心的驅使下,我偷偷翻看了 Spring Boot 下 資料來源和Mybatis 的配置,我們在用的時候都是在 application.yml 和 application.properties 按規定寫下配置值就可以直接使用。

application.yml 配置資料來源

spring:
    datasource:
            type: com.zaxxer.hikari.HikariDataSource
            url: jdbc:mysql://10.0.**.*:3306/db?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false
            password: root
            username: root
            driver-class-name: com.mysql.jdbc.Driver
            minimum-idle: 5
            maximum-pool-size: 20
            idle-timeout: 600000
            connection-timeout: 30000
            max-lifetime: 1800000

application.properties 配置mybatis

# Mybatis
mybatis.mapperLocations=classpath:mapper/*.xml
mybatis.configLocation=classpath:mybatis.xml

但是有沒有想過這樣子寫下來為什麼就OK了,我們並沒有在我們的程式碼裡面去引用載入這些配置啊。假如改了其他名字可以不?,答案是:NO

不捉急,先上兩張圖過過癮

看到了吧,兩個jar

spring-boot-autoconfigure-1.5.4.RELEASE.jar

mybatis-spring-boot-autoconfigure-1.3.0.jar

這兩個jar是Spring boot專案引入的,兩個自動注入配置 jar,這兩個jar裡面的 DataSourceProperties ,MybatisProperties就是專門注入資料來源,mybatis配置的,配置名稱對應類裡面的成員變數名稱,通過set方法注入。

這下可明白了吧,Spring Boot 就是把 Spring裡面習慣配置的東西封裝起來減少配置,達到新建專案即可使用的效果。

對於 Spring Boot 還不是很熟的盆友可以看下這篇網路文章:Spring Boot乾貨系列-配置檔案解析

題外話:Nginx配置的坑

location 後面的節點 /ajax/ 如果有 斜槓:/ 結尾

則反向代理地址 proxy_pass 後面也必須加斜槓:/ 結尾

關注公眾號,分享乾貨,討論技術,你的支援是我最大的動力!!!

相關文章