Spring中常用注解的用法
Spring的常用注解
使用注解前唯一需要注解的就是,開啟注解掃描
?<context:component-scan base-package="com.guo"></context:component-scan> <context:annotation-config/>
1. @Comment
作用: 把資源讓spring來管理,相當(dāng)于在xml中配置一個(gè)bean。
屬性: 指定bean的id。
如果不指定value屬性,默認(rèn)bean就是id當(dāng)前的類名,首字母小寫。(一般就是默認(rèn)的)
2. @Controller、@Service、@Repository
他們?nèi)齻€(gè)注解都是針對(duì)一個(gè)的衍生注解,他們的作用及屬性都是一模一樣的。他們只不過是提供了更加明確的語義化。
- @Controller: 一般用于控制層的注解
- @Service: 一般用于服務(wù)層的注解
- @Repository: 一般用于dao數(shù)據(jù)交互層的注解
如果注解中有且只有一個(gè)屬性要賦值時(shí),且名稱是 value , value 在賦值是可以不寫。
3. @Autowired
作用: 自動(dòng)按照類型注入,當(dāng)使用注解注入屬性時(shí),set方法可以省略。
它只能注入其他bean類型,當(dāng)有多個(gè)類型匹配時(shí),使用時(shí)要注入的對(duì)象變量名稱作bean的id,在spring容器中查找,找到了就注入成功。找不到就注入失敗。
4. @Configuration
作用: 用于指定當(dāng)前類時(shí)一個(gè) spring配置類
當(dāng)創(chuàng)建容器時(shí)會(huì)從該類上加載注解。
獲取容器時(shí)需要使用 AnnotationApplicationContext( 有 @Configuration 注解的類 .class) 。
屬性: value:用于指定配置類的字節(jié)碼。
5. @ComponentScan
作用: 用于指定Spring容器在初始化容器時(shí)需要掃描的包。
作用在和spring的xml配置文件中是一樣的
< context:component-scan base-package =" com.itheima " />
屬性: basePackages :用于指定要掃描的包。
和該注解中的 value 屬性作用一樣。
/** * spring 的配置類,相當(dāng)于 bean.xml 文件 */ @Configuration @ComponentScan("com.xxxx") Public class SpringConfiguration{ }
6. @Bean
作用: 該注解只能寫在方法上,表示使用此方法創(chuàng)建一個(gè)對(duì)象,并放入Spring容器中。
屬性: name:給當(dāng)前 @Bean 注解方法創(chuàng)建的對(duì)象指定一個(gè)名稱 ( 即 bean 的 id )。
7. @PropertySource
作用: 用于加載 .properties 文件中的配置。例如我們配置數(shù)據(jù)源時(shí),可以把連接數(shù)據(jù)庫的信息寫到properties 配置文件中,就可以使用此注解指定 properties 配置文件的位置。
屬性: value[] :用于指定 properties 文件位置。如果是在類路徑下,需要寫上 classpath:
8. @Import
作用: 在一個(gè)配置類中導(dǎo)入其他配置類的內(nèi)容
9. 切面AOP的相關(guān)注解
Spring是支持面向切面編程。
- @Aspect 聲明一個(gè)切面
- @After 在方法執(zhí)行之后執(zhí)行(方法上)
- @Before 在方法執(zhí)行之前執(zhí)行(方法上)
- @Around 在方法執(zhí)行之前與之后執(zhí)行(方法上)
- @PointCut 聲明切點(diǎn)
10. Bean的屬性支持
@Bean的設(shè)置(作用域) 設(shè)置Spring容器如何新建Bean實(shí)例
Singleton 單例Bean,在spring IoC容器僅存在一個(gè)Bean實(shí)例,Bean以單例方式存在,bean作用域范圍的默認(rèn)值。
Protetype 原型Bean,每次從容器中調(diào)用Bean時(shí),都返回一個(gè)新的實(shí)例,即每次調(diào)用getBean()時(shí),相當(dāng)于執(zhí)行newXxxBean()。
Request 請(qǐng)求Bean,每次HTTP請(qǐng)求都會(huì)創(chuàng)建一個(gè)新的Bean,該作用域僅適用于web的Spring WebApplicationContext環(huán)境。
Session 會(huì)話Bean,同一個(gè)HTTP Session共享一個(gè)Bean,不同Session使用不同的Bean。該作用域僅適用于web的Spring WebApplicationContext環(huán)境。
GlobalSession 全局會(huì)話Bean,限定一個(gè)Bean的作用域?yàn)镾ervletContext的生命周期。該作用域僅適用于web的Spring WebApplicationContext環(huán)境。
到此這篇關(guān)于Spring中常用注解的用法的文章就介紹到這了,更多相關(guān)Spring常用注解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Java導(dǎo)入excel大量數(shù)據(jù)出現(xiàn)內(nèi)存溢出的問題
今天小編就為大家分享一篇解決Java導(dǎo)入excel大量數(shù)據(jù)出現(xiàn)內(nèi)存溢出的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06Mybatis查詢返回Map<String,Object>類型的實(shí)現(xiàn)
本文主要介紹了Mybatis查詢返回Map<String,Object>類型的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Springboot中使用Redisson+AOP+自定義注解實(shí)現(xiàn)訪問限流與黑名單攔截
本文主要介紹了Springboot中使用Redisson+AOP+自定義注解實(shí)現(xiàn)訪問限流與黑名單攔截,包含針對(duì)用戶IP限流,整個(gè)接口的訪問限流,以及對(duì)某個(gè)參數(shù)字段的限流,并且支持請(qǐng)求限流后處理回調(diào),感興趣的可以了解一下2024-02-02java發(fā)送短信系列之限制日發(fā)送次數(shù)
這篇文章主要為大家詳細(xì)介紹了java發(fā)送短信系列之限制日發(fā)送次數(shù),詳細(xì)介紹了限制每日向同一個(gè)用戶(根據(jù)手機(jī)號(hào)和ip判斷)發(fā)送短信次數(shù)的方法,感興趣的小伙伴們可以參考一下2016-02-02springboot斷言異常封裝與統(tǒng)一異常處理實(shí)現(xiàn)代碼
異常處理其實(shí)一直都是項(xiàng)目開發(fā)中的大頭,但關(guān)注異常處理的人一直都特別少,下面這篇文章主要給大家介紹了關(guān)于springboot斷言異常封裝與統(tǒng)一異常處理的相關(guān)資料,需要的朋友可以參考下2023-01-01LambdaQueryWrapper與QueryWrapper的使用方式
這篇文章主要介紹了LambdaQueryWrapper與QueryWrapper的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05