国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Spring的注解積累

2019-11-15 00:41:23
字體:
來源:轉載
供稿:網友
SPRing的注解積累

用注解來向Spring容器注冊Bean。

需要在applicationContext.xml中注冊:

1 <context:component-scan base-package=”pagkage1[,pagkage2,&hellip;,pagkageN]”/>

如:在base-package指明一個包

<context:component-scan base-package="cn.wind"/>  

也可以在<context:component-scan base-package=” ”/>中指定多個包,如:

<context:component-scan base-package="cn.wind.dao.impl,cn.wind.service.impl,cn.wind.action"/>  

==========

1:@Repository 標注在持久層,即dao,用于標注數據訪問。

2:@Service 標注在業務層,即service,用于標注業務邏輯。

3:@Controller 標注在控制層。

4:@Component當不明確這個類屬于那個層的時候,可以使用@Component進行標注,但不建議使用

5:@Autowired屬性加上@Autowired后不需要getter()和setter()方法,Spring會自動注入

@Autowired(required=false)表示,如果spring上下文中沒有找到該類型的bean時,才會使用new ServiceImpl();

6:@Qualifier當接口存在兩個實現類的時候必須使用@Qualifier指定注入哪個實現類,否則可以省略,只寫@Autowired。

例如:定義一個交通工具類:Vehicle。此時有兩個子類Bus和Sedan。如果用@Autowired來找Vehicle的話,會有兩個匹配的選項Bus和Sedan。為了限定選項,可以如下

@Autowired  @Qualifier("bus")  private Vehicle vehicle; 

@Qualifier("XXX") 中的XXX是 Bean 的名稱,所以 @Autowired 和 @Qualifier 結合使用時,自動注入的策略就從 byType 轉變成 byName 了。

7:形似@Service("xXX"):相當于講這個類定義為一個bean,bean名稱為xXX,默認為首字母小寫

比如在一個Student實現類上加上@Service("student"),括號里面就是給實例化后的Student對象取個名字。這是在你一個接口有多個實現類的情況下區分實現類的方式。

比如Student實現了Person接口,在你的controller里面@Autowired Person時,假如這時Person還有另一個實現類User,為了確定實例化Student還是User, @Service括號里面的東西就有用了,

@Autowired  @Qualifier("student")  private Person person;  

這樣就確定實例化了一個Person指向一個Student對象。

8:@Resource

@Resource的作用相當于@Autowired,只不過@Autowired按byType自動注入,而@Resource默認按 byName自動注入罷了。@Resource有兩個屬性是比較重要的,分是name和type,Spring將@Resource注解的name屬性解析為bean的名字,而type屬性則解析為bean的類型。所以如果使用name屬性,則使用byName的自動注入策略,而使用type屬性時則使用byType自動注入策略。如果既不指定name也不指定type屬性,這時將通過反射機制使用byName自動注入策略。

@Resource裝配順序

1).如果同時指定了name和type,則從Spring上下文中找到唯一匹配的bean進行裝配,找不到則拋出異常

2) 如果指定了name,則從上下文中查找名稱(id)匹配的bean進行裝配,找不到則拋出異常

3) 如果指定了type,則從上下文中找到類型匹配的唯一bean進行裝配,找不到或者找到多個,都會拋出異常

4) 如果既沒有指定name,又沒有指定type,則自動按照byName方式進行裝配;如果沒有匹配,則回退為一個原始類型進行匹配,如果匹配則自動裝配;

9:@PostConstruct,@PreDestroy

這兩個注釋只能應用于方法上,標注了@PostConstruct 注釋的方法將在類實例化后調用,而標注了 @PreDestroy 的方法將在類銷毀之前調用。

@PostConstruct  public void  init(){        System.out.println("I'm  init  method  using  @PostConstrut....");  }  @PreDestroy  public void  dostory(){        System.out.println("I'm  destory method  using  @PreDestroy.....");  }  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 寻乌县| 酒泉市| 新绛县| 漾濞| 宝应县| 民权县| 岱山县| 闵行区| 格尔木市| 娄底市| 化隆| 顺义区| 乳山市| 威宁| 游戏| 库尔勒市| 红河县| 延津县| 辰溪县| 乐业县| 高州市| 勃利县| 富裕县| 昌宁县| 樟树市| 乐东| 沅陵县| 长宁县| 墨江| 金昌市| 鄂托克旗| 邢台市| 肥城市| 宣汉县| 宁津县| 巴林左旗| 广德县| 宁陵县| 清徐县| 扶绥县| 吉木乃县|