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è)注解都是針對一個(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í)要注入的對象變量名稱作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è)對象,并放入Spring容器中。
屬性: name:給當(dāng)前 @Bean 注解方法創(chuàng)建的對象指定一個(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 請求Bean,每次HTTP請求都會(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于springboot設(shè)置Https請求過程解析
這篇文章主要介紹了基于springboot設(shè)置Https請求過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
Java執(zhí)行hadoop的基本操作實(shí)例代碼
這篇文章主要介紹了Java執(zhí)行hadoop的基本操作實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-04-04
Spring中過濾器和攔截器的區(qū)別及具體實(shí)現(xiàn)方式
在Spring框架中,和都是用于處理 HTTP 請求的中間件,但它們在作用范圍、實(shí)現(xiàn)方式和生命周期上有顯著區(qū)別,本文給大家介紹Spring中過濾器和攔截器的區(qū)別及具體實(shí)現(xiàn),感興趣的朋友一起看看吧2025-07-07
IDEA個(gè)性化設(shè)置注釋模板詳細(xì)講解版
IDEA自帶的注釋模板不是太好用,我本人到網(wǎng)上搜集了很多資料系統(tǒng)的整理了一下制作了一份比較完整的模板來分享給大家,下面這篇文章主要給大家介紹了IDEA個(gè)性化設(shè)置注釋模板的相關(guān)資料,需要的朋友可以參考下2024-01-01
Spring?Boot?消息隊(duì)列與異步處理的應(yīng)用小結(jié)
這篇文章給大家介紹了Spring?Boot?消息隊(duì)列與異步處理的應(yīng)用小結(jié),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2026-04-04

