1. 程式人生 > >Spring常用註解小結

Spring常用註解小結

版權宣告:本文為章魚哥原創文章,若要轉載,請註明出處 https://blog.csdn.net/qq_40388552/article/details/84777234

 以往我們使用Spring框架進行開發,使用xml檔案來對bean進行注入或者是配置aop、事物,慢慢我們發現是在是太麻煩了,於是乎從Spring2.5版本後也開始支援註解。相比起之前使用xml來配置Spring框架,使用註解提供了更多的控制Spring框架的方式。現在,越來越多的專案都在使用註解做相關的配置,這時就有必要對Spring的常用的註解有一個瞭解,這裡只是做一些簡單的介紹。

1、@Autowired
@Autowired預設按型別匹配的,使用它我們在Java中就可以不用再寫get/set方法

2、Qualifier(指定注入Bean的名稱)
當容器中有一個以上匹配的Bean,則可以通過@Qualifier註解限定Bean的名稱,可以與@Autowired一起使用。

[email protected]
@Resource註解與@Autowired註解作用非常相似,但還是有一定的區別
說一下@Resource的裝配順序:
(1)、@Resource後面沒有任何內容,預設通過name屬性去匹配bean,找不到再按type去匹配
(2)、指定了name或者type則根據指定的型別去匹配bean
(3)、指定了name和type則根據指定的name和type去匹配bean,任何一個不匹配都將報錯
然後,區分一下@Autowired和@Resource兩個註解的區別:
(1)、@Autowired預設按照byType方式進行bean匹配,@Resource預設按照byName方式進行bean匹配
(2)、@Autowired是Spring的註解,@Resource是J2EE的註解,這個看一下匯入註解的時候這兩個註解的包名就一清二楚了


Spring屬於第三方的,J2EE是Java自己的東西,因此,建議使用@Resource註解,以減少程式碼和Spring之間的耦合。

4、@Service
@Service對應的是業務層Bean

5、@Scope(“prototype”)
Spring預設產生的bean是單例的,假如我不想使用單例怎麼辦,xml檔案裡面可以在bean裡面配置scope屬性。註解也是一樣,配置@Scope即可,預設是"singleton"即單例,"prototype"表示原型即每次都會new一個新的出來。

6、@Component
@Component是所有受Spring 管理元件的通用形式,@Component註解可以放在類的頭上,@Component不推薦使用。


7、@Controller
@Controller對應表現層的Bean,也就是Action,

8、@ Repository
@Repository對應資料訪問層Bean

9、@Primary:自動裝配時當出現多個Bean候選者時,被註解為*@Primary的Bean將作為首選者,否則將丟擲異常*

10、@[email protected]
Configuration用於定義配置類,可替換xml配置檔案,被註解的類內部包含有一個或多個被@Bean註解的方法,這些方法將會被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext類進行掃描,並用於構建bean定義,初始化Spring容器。

11、@Bean
@Bean明確地指示了一種方法,什麼方法呢——產生一個bean的方法,並且交給Spring容器管理;從這我們就明白了為啥@Bean是放在方法的註釋上了,因為它很明確地告訴被註釋的方法,你給我產生一個Bean,然後交給Spring容器,剩下的你就別管了

12、@Value
Spring可以通過@Value來獲取*.porperties檔案中的內容 語法: @Value("${}")