Spring註解學習
創建對象的註解
需要在xml文件中配置需要掃描註解的包
<context:component-scan base-package="com.github.excellent"/>
- @Component(value = “user”) (value可以省略),將當前類的對象存入Spring容器中。需要提前說明需要掃描的包。
- @Controller(value = “user”) (value可省略) — 表現層
- @Service(value = “user”) ---- 業務層
- @Repository(value = “user”) ---- 持久層
- 後面三個是Spring爲了提供明確的三層設計提供的註解,使得三層對象更加明確,以上註解都用在類上。
注入數據的註解
注入Bean類型的數據
- @Autowired :按照類型自動注入,當Spring容器中有與類屬性相對應的類型時,就會自動匹配,實現注入。一個都匹配不上則會報錯。如果有多個匹配,則會按照變量名稱再次篩選(可以用在屬性,方法上)
- @Qualifier(value = “user”):在按照類型匹配的基礎上,再按照名稱進行匹配。必須搭配Autowired使用,不能單獨使用。該註解主要用來解決多個bean屬性都符合的時候,不知道自動注入哪個的情況。
- @Resource(name = “user”):直接按照id進行注入
注入基本類型及String類型
- @Value(value = “Jack”)
這樣看起來和硬編碼差不多,還不如直接給屬性賦值就行了,確實也是這樣。因此@Value遠遠沒有這麼簡單,該註解主要通過和SpEL表達式搭配使用,來動態的爲屬性賦值。
改變作用範圍的註解
- Scope(value = “propertype”)
生命週期相關的註解
- @PostConstruct:聲明初始化方法
- @PreDestroy:聲明銷燬方法