Spring Annotation 整理

@Bean

功能概述

  • 用于創(chuàng)建一個由SpringIoc容器管理的新對象,@Bean適用于方法級別的上的注解。
  • 在@Configuration、@Component注解類使用。

屬性說明

  • value: bean別名,value與name同時設(shè)置時,名稱名稱必需一致
  • name: bean名稱,默認(rèn)使用方法名稱做為bean名稱
  • autowire: 自動裝配,默認(rèn)不開啟
  • initMethod: bean 初始化方法
  • destroyMethod: bean 銷毀方法

@ComponentScan

功能概述

  • 裝配帶有@Controller、@Service、@Repository、@Component注解的類到Spirng容器中。

屬性說明

  • basePackages: 指定要掃描的包,
  • basePackageClasses: 指定要掃描的類
  • excludeFilters: Filter[], 指定掃描時候按照什么規(guī)則排除哪些組件
  • includeFilters: Filter[], 指定掃描的時候只要包含哪些組件,需要將-
  • useDefaultFilters: 設(shè)置為false,才能生效
  • useDefaultFilters: 默認(rèn)true,默認(rèn)規(guī)則掃描所有

@Filter

** 功能描述 **

  • 聲明類型過濾器,包含篩選或排除篩選

** 屬性說明 **

  • FilterType.ANNOTATION: 用給定注釋標(biāo)記的篩選
  • FilterType.ASPECTJ:匹配給定AspectJ類型模式表達(dá)式的過濾器
  • FilterType.ASSIGNABLE_TYPE:篩選給定類型的對象
  • FilterType.CUSTOM:使用給定的自定義TypeFilter器實(shí)現(xiàn)篩選
  • FilterType.REGEX:與給定的正則表達(dá)式匹配的過濾
  • classes: 過濾條件表達(dá)式

@ComponentScans

功能概述

  • 配置多個ComponentScan時使用;java8以下版本使用

屬性說明

  • value: ComponentScan[],指定多個ComponentScan

@Scpoe

功能概述

  • Bean作用域,默認(rèn)作用域是單例模式

屬性說明

  • singleton: 單例模式
  • prototype: 原型模式,每次獲取bean實(shí)例的時候才會創(chuàng)建對象
  • request: 每一次HTTP請求都會產(chǎn)生一個新的bean
  • session: 每一次HTTP請求都會產(chǎn)生一個新的bean,當(dāng)前HTTP session內(nèi)有效
  • global session: 作用域類似于標(biāo)準(zhǔn)的HTTP Session作用域,僅在基于portlet的web應(yīng)用中才有意義

@Lazy

功能描述

  • 容器啟動的時候不自動創(chuàng)建對象,第一次獲取的時候創(chuàng)建對象

屬性說明

  • value: true,懶加載; false,立即加載

@Conditional

功能描述

  • 條件注解,根據(jù)代碼中設(shè)置的條件裝載不同的bean

屬性說明

  • value: 設(shè)置實(shí)現(xiàn)Condition接口類,在設(shè)置條件注解之前,先要把裝載的bean類去實(shí)現(xiàn)Condition接口

@import

功能描述
-注解可以普通類導(dǎo)入到 IoC容器中

屬性說明

  • 按全類名導(dǎo)入,默認(rèn)ID是全類名
  • 實(shí)現(xiàn)接口ImportSelector: 返回需要導(dǎo)入的組件的全類名數(shù)組
  • ImportBeanDefinitionRegistrar: 手動注冊bean到容器中

FactoryBean

功能說明

  • 使用Spring提供的FactoryBean(工廠Bean);非注解,實(shí)現(xiàn)FactoryBean接口

屬性描述

  • 默認(rèn)獲取到的是工廠Bean調(diào)用getObject創(chuàng)建的對象
  • 要獲取工廠Bean本身,我們需要給ID的前面加上&符號

@Value

功能說明

  • 使用@value賦值

屬性說明
-基本數(shù)值
-SpEL賦值, #{}
-獲取對應(yīng)屬性文件中定義的屬性值,可以寫 ${}

@PropertiesSource

功能說明
-讀取配置文件中的數(shù)據(jù)

** 屬性說明 **
-file: 加載路徑路徑下載的配置文件
-classpath: 加載類路徑的下的配置文件

@Autowired

功能說明

  • Bean自動注入

** 屬性說明 **

  • 默認(rèn)優(yōu)先按照類型去容器中找對應(yīng)的組件
  • 相同類型的組件,再將屬性的名稱作為組件的id去容器中查找
  • required: 是否必需

@Qualifier

功能說明

  • 制定需要裝配組件的id

屬性說明

  • value:id名稱

@primary

功能說明

  • 默認(rèn)使用首選的Bean

@Resource

功能說明

  • Bean自動注入, 默認(rèn)是按照名稱進(jìn)行裝配
  • 不支持@Primary與@Autowired(reqiured=false)
  • java規(guī)范注解,JSR250

屬性說明

  • name: 容器ID名稱

@Inject

功能說明

  • Bean自動注入, 支持@Primary,不支持@Autowired(reqiured=false)
  • 需要導(dǎo)入javax inject依賴
  • java規(guī)范注解, JSR330

@ Profile

功能說明

  • 制定組件在哪個環(huán)境的情況下才能被注冊到容器中

屬性說明

  • value: 制定環(huán)境名稱
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容