springboot開啟自動配置理解
在了解spring boot如何開啟自動配置時,應先了解什麼是spring boot?
1.spring boot
spring boot是乙個簡化了spring中多框架中所需大量繁瑣的配置檔案,服務於框架,且服務範圍是簡化配置檔案的框架
spring boot特點:配置檔案更簡單,應用部署更簡單(spring boot內建伺服器,並裝備啟動類**),可快速開啟乙個web容器進行開發
spring boot核心功能:
下面就來看看spring boot是如何實現自動配置的吧~
@aliasfor(
annotation = enableautoconfiguration.class
)string excludename() default {};
@aliasfor(
annotation = componentscan.class,
attribute = "basepackages"
)string scanbasepackages() default {};
@aliasfor(
annotation = componentscan.class,
attribute = "basepackageclasses"
)class<?> scanbasepackageclasses() default {};
@aliasfor(
annotation = configuration.class
)boolean proxybeanmethods() default true;
2.3 @componentscan:定義包掃瞄規則(配置需要掃瞄的包)
最重要的是@enableautoconfiguration註解
2.4 @enableautoconfiguration作用:開啟自動配置,自動根據型別掃瞄此類的所有包,配合@componentscan,將主配置類所在包及其下所有子包進行掃瞄。
@enableautoconfiguration原始碼:
@target()
@retention(retentionpolicy.runtime)
@documented
@inherited
@autoconfigurationpackage
@import()
public @inte***ce enableautoconfiguration ;
string excludename() default {};}12
3456
78910
1112
13由原始碼可知:@enableautoconfiguration 中組和了@autoconfigurationpackage註解和@import()註解
@autoconfigurationpackage:定義了spring boot自動匯入元件需要遵循的規則,其原始碼:
@target()
@retention(retentionpolicy.runtime)
@documented
@inherited
@import()
public @inte***ce autoconfigurationpackage 12
3456
7由原始碼可知,其中重要的註解為:@import(),其中,registrar原始碼
static class registrar implements importbeandefinitionregistrar, determinableimports
public void registerbeandefinitions(annotationmetadata metadata, beandefinitionregistry registry)
public setdetermineimports(annotationmetadata metadata)
基於springboot的多資料來源自動配置實現
最近做了乙個自動支援多資料來源配置的功能,基於springboot生態擴充套件,可自動識別配置檔案中的資料庫配置引數,並進行autoconfig。功能性 非功能性 注意事項 如何使用 1 要使用多資料來源自動配置,需要將springboot自帶的datasource相關自動配置類遮蔽自動啟動。在sp...
SpringBoot新增Swagger配置
swagger 是乙個規範和完整的框架,用於生成 描述 呼叫和視覺化 restful 風格的 web 服務。總體目標是使客戶端和檔案系統作為伺服器以同樣的速度來更新。檔案的方法 引數 模型緊密整合到伺服器端的 允許api來始終保持同步。swagger 讓部署管理和使用功能強大的api從未如此簡單。1...
SpringBoot使用Jasypt對配置檔案加密
com.github.ulisesbocchio jasypt spring boot starter 2.0.0 public static void main string args jasypt encryptor password leyou95536ghyewcve139864rwfafd...