1. 程式人生 > 實用技巧 >Spring-四種常用註解

Spring-四種常用註解

四種註解:

用於建立物件的:

​ 他們的作用就和在xml配置檔案中編寫一個標籤實現的功能是一眼的
@Component:
​ 作用:用於把當前類物件存入spring容器中
​ 屬性:
​ value:用於指定bean的id,當我們不寫時,它的預設值時當前型別,且首字母改小寫
@Controller :一般用在表現層
@Service : 一般用在業務層
@Repository : 一般用在持久層
​ 以上三個註解他們的作用和屬性與@Component完全相同
​ 他們三個是spring框架為我們提供明確的三層使用的註解,使我們的三層物件更加清晰

用於注入資料的

​ 他們的作用就和在xml配置檔案中的bean標籤中寫一個 標籤作用一眼
@Autowired
​ 作用:自動按照型別注入。只要容器中有唯一的一個bean物件型別和要注入的變數型別匹配,就可以注入成功
​ 如果IOC容器中沒有任何bean型別和要注入的變數型別匹配,則報錯。
​ 如果IOC容器中有多個型別匹配時:先匹配IOC 容器中 value值找到物件,若多個進行注入,根據變數名來尋找對應的 key 進行注入,若不存在則報錯

​ 出現位置:
​ 可以是變數上,也可以是方法上
​ 細節:
​ 在使用註解注入時,set方法不是必須的

@Qualifier :
​ 作用:在按照類中注入的基礎之上再按照名稱注入。它在給類成員注入時不能單獨使用(要與@Autowired一起使用),但是在給方法引數注入時可以
​ 屬性:
​ value:用於指定注入 bean 的 id
@Resource(java.xml.ws.annotation) :
​ 作用:直接按照 bean 的 id 注入,可以單獨使用
​ 屬性:
​ name: 用於指定 bean 的 id
​ 以上三個注入都只能注入其他bean型別,而基本資料型別和String型別無法使用上述註解實現
​ 另外,集合型別只能通過 xml 來實現
@Value


​ 作用:用於注入基本資料型別和String型別
​ 屬性:
​ value:用於指定資料的值,它可以使用spring中的SpEL(也就是spring 的 el 表示式)
​ SpEL的寫法: ${表示式}

用於改變作用範圍的

​ 他們的作用就和在bean標籤中使用 scope屬性實現的功能一樣
@Scope
​ 作用:用於指定 bean 的作用範圍
​ 屬性:
​ value:指定範圍的取值。常用取值:singleton,prototype

與生命週期相關

​ 他們的作用就和在bean標籤中使用init-method 和 destroy-method的作用相同
@PreDestroy
​ 作用:用於指定銷燬方法
@PostConstruct
​ 作用:用於指定初始化方法

​ 注: @PreDestroy@PostConstruct 註解位於 java.xml.ws.annotation包是Java EE的模組的一部分。J2EE已經在Java 9中被棄用,並且計劃在Java 11中刪除它。