@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)境名稱