SpringBoot開啟自動配置理解

2021-10-16 01:34:46 字數 1989 閱讀 8492

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...