@Configuration
同@Component,將標注的類作為一個組件,區別是會使用Cglib動態代理,因此使用該注解的類不能是final的
與@Component的區別可見:Configuration和@Component的區別
Cglib動態代理和JDK動態代理區別可見:Cglib動態代理和JDK動態代理的對比
屬性:
value,一般用不到,會將該值傳遞給@Component
proxyBeanMethods,是否代理@Bean方法,詳見 Configuration和@Component的區別
@Component
將標注的類作為一個組件使用,單例
屬性:
value,給組件起名,與@Resource一起使用,根據命名匹配注入物件
@Bean
標記方法用于創建一個Bean物件,并交給Spring IOC容器管理,@Bean標記的方法Spring只會呼叫一次,常用于@Configuration標記的類下
屬性:
value,同@Component的value屬性
name,與value互為別名
autowire,已廢棄,不談
autowireCandidate,配置Bean是否為自動裝配到其他Bean的候選者,默認為true,如果你不希望這個@Bean方法干擾到其他同型別的依賴注入,可能會用到
initMethod,初始化方法,傳@Bean方法生成的物件方法名,在@Bean方法執行后執行,一般都會直接將初始化方法寫到@Bean方法里,很少用
destroyMethod,銷毀方法,在application context關閉時呼叫,方法不能有引數,可以拋例外,很少用
@ComponentScan/@ComponentScans
指定Spring IOC容器啟動時掃描的Bean目錄,并將Bean組件初始化后交個IOC容器管理
屬性:
value,需要掃描的組件路徑,String陣列型別
basePackages,與value互為別名
basePackageClasses,作用同basePackages,class陣列型別,看注釋是basePackages的安全用法,單獨在每個包下建立專用的類或介面,用于被該屬性標記
nameGenerator,指定beanName生成器,BeanNameGenerator的實作類
scopeResolver,指定@Scope注解的決議器,ScopeMetadataResolver的實作類
scopedProxy,指定Scope代理模式,ScopedProxyMode列舉,不使用代理(默認),JDK代理,Cglib代理
resourcePattern,組件掃描正則,例如:啟動程式上的注解@SpringBootApplication包含該注解,此屬性的默認值為 ../*.class,所以默認掃描啟動類所在目錄下的所有class檔案

useDefaultFilters,是否使用默認過濾器,例如對@Component等注解的檢測
includeFilters,組件掃描過濾器,@Filter陣列
excludeFilters,組件排除過濾器,@Filter陣列
lazyInit,是否對掃描到的組件進行懶加載
@Filter注解
@ComponentScan使用的過濾器
屬性:
type:過濾器型別,FilterType列舉
value:與classes互為別名
classes:根據type,表示通過注解過濾,通過Class過濾,還是通過自定義過濾類過濾,class陣列型別
pattern:根據type,表示正則運算式過濾或者AspectJ運算式
@Scope
使用在Bean注冊類注解上,例如@Bean或@Component,一般用于多例需求,即每次自動注入時都會生成一個新的物件
屬性:
value,與scopeName互為別名
scopeName,使用哪種Scope型別,常用的有SCOPE_SINGLETON(單例),SCOPE_PROTOTYPE(多例,原型),SCOPE_REQUEST(同Request下單例),SCOPE_SESSION(同session下單例)
proxyMode,指定代理模式,ScopedProxyMode列舉,不使用代理(默認),JDK代理,Cglib代理
@Lazy
字面意思,懶加載,Spring啟動時不創建,啥時候用,啥時候執行
屬性:
value,boolean型別,標記是否懶加載,沒啥用,都用這個注解,一般也不會設為false吧
@Conditional
按需創建,滿足條件時才會創建Bean物件
屬性:
value,Condition介面的實作類,如果回傳true,則Spring IOC會進行加載
@Import
匯入組件類,通常有四種用法:
-
實作
ImportSelector介面的類,重新介面中的選擇方法,匯入部分經過選擇后的類到Spring IOC容器中 -
實作
ImportBeanDefinitionRegistrar介面的類,允許自定義BeanDefinition -
@Configuration類,引入@Bean方法生成的物件到Spring IOC容器中
-
普通類(Spring 4.2支持),將類引入到Spring IOC容器中
屬性:
value,需要匯入的類,class型別的陣列
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/543510.html
標籤:其他
上一篇:解決:ChatGPT too many requests in 1 hour.Try again later 怎么辦?OpenAI 提示
