Spring常用註解(一)

Spring常用註解(一)

聲明bean對象系列

1.@Component

  • 作用:相當於配置了一個bean標籤
  • 位置:類上面
  • 屬性:value,指定bean的id。默認值爲當前類的短名然後首字母改小寫

2.@Controller 一般用於表現層註解,控制器的聲明。

  • 負責接收view請求,轉向對應的model處理,並把結果填充view當中
  • 標註一個控制器組件類

3.@Service 一般用於業務層

  • 標註一個業務邏輯組件類

4.@Repository 一般用於持久層(dao層)

  • 標註一個DAO組件類
  • 該註解的作用不只是將類識別爲Bean,同時它還能將所標註的類中拋出的數據訪問異常封裝爲 Spring 的數據訪問異常類型。 Spring本身提供了一個豐富的並且是與具體的數據訪問技術無關的數據訪問異常結構,用於封裝不同的持久層框架拋出的異常,使得異常獨立於底層的框架。

注入bean對象系列

1.@Autowired : 由Spring提供

  • 作用:自動按照類型注入,不關心bean的id。
    只要有唯一的類型匹配就能注入成功,set方法也不是必須的了
    如果不唯一,即一個接口有多個實現類
    則會判斷變量名稱是否跟bean的名稱相同
    如果都不匹配則報錯

2.@Inject:由JSR-330提供
3.@Resource:由JSR-250提供

  • 默認按名稱裝配,當找不到與名稱匹配的bean纔會按類型裝配。

4.@Qualifier

  • 作用:在自動按照類型注入的基礎上,再按照bean的id注入
    在給類成員注入數據時需要和@Autowired一起使用!給方法的形參注入可以獨立使用

  • 屬性:value,用於指定bean的id

  • 注意:可以放在形參上,即方法的參數上指定形參的bean id

5.@Value

  • 作用:用於注入基本類型和String類型數據,可以藉助Spring的el表達式讀取properties文件中的配置
  • 屬性:value,用於指定要注入的數據

java配置類相關係列

1.@Configuration:聲明當前類爲配置類,相當於xml形式的Spring配置

  • 作用:把當前類作用spring的配置類,當ApplicationContext去找bean.xml時,可以注入一個SpringConfiguration.class,表示bean.xml放在當前類的目錄下。
  • 位置:類上

2.@Bean:註解在方法上,聲明當前方法的返回值爲一個bean,替代xml中的方式

  • 作用:讓當前方法的返回值存入spring容器中,簡單來說,當創建的對象是第三方的包new出來的時候,我們想使用註解卻不能去修改第三方的包,則可以寫一個createObject方法,返回一個第三方 包new出來的對象,並加上@Bean就能表示該返回的對象是一個bean要加入容器中。
  • 屬性:name,指定bean的id,如果不指定則默認值爲方法的名稱
  • 位置:方法上

3.@ComponentScan : 用於對Component進行掃描,相當於xml中的

  • 作用:該類的作用就相當於bean.xml,在該類上添加當前註解
  • 屬性:value,數組類型{},一個值可直接寫"com.xxx"表示掃描當前包

4.@WishlyConfiguration :是@Configuration與@ComponentScan的組合註解,可以替代這兩個註解

5.@Import

  • 作用:如果要將不同的配置文件拆開,則需要該註解,放在SpringConfiguration主配置類上
  • 屬性:value,例如:OtherConfig.class,這樣就可拆分配置類
  • 注意:該註釋用於配置文件的引入,因此不會把配置文件的類放入容器中,一定注意什麼時候用@Component什麼時候用@Import,要不要需要使用當前類的方法!

6.@PropertySource

  • 作用:從配置文件中加載屬性,例如properties文件,通過該屬性對例如數據庫的配置進行加載。該註解放在主配置類的上方,指定配置文件的路徑即可,配合value使用
  • 屬性:value,classpath:properties.properties配置文件路徑,@Value("${配置文件的key}")
  • 注意:spring4.3之後會自帶${}解析器,之前的版本需要自己配解析器

用於改變bean對象範圍系列

1.@Scope

  • 作用:用於改變bean的作用範圍
  • 屬性:value,用於指定範圍的取值,取值和xml中scope屬性的取值是一樣的。
    Singleton (單例,一個Spring容器中只有一個bean實例,默認模式),
    Protetype (每次調用新建一個bean),
    Request (web項目中,給每個http request新建一個bean),
    Session (web項目中,給每個http session新建一個bean),
    GlobalSession(給每一個 global http session新建一個Bean實例)

和bean對象生命週期相關係列

1.@PostConstruct

  • 作用:用於指定初始化方法,等於init-method

2.@PreDestroy

  • 作用:用於指定銷燬方法,等於destroy-method
發佈了46 篇原創文章 · 獲贊 38 · 訪問量 3366
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章