(1).用於註冊bean物件的註解
1.1@component:
作用: 呼叫無參構造建立乙個bean物件,並把物件存入spring的ioc容器,交由spring容器進行管理。相當於在xml中配置乙個bean。
屬性: value:指定bean的id。如果不指定value屬性,預設bean的id是當前類的類名。首字母小寫。
1.2@controller
作用: 呼叫無參構造建立乙個bean物件,並把物件存入spring的ioc容器,交由spring容器進行管理。相當於在xml中配置乙個bean。一般用於表現層的註解
屬性: value:指定bean的id。如果不指定value屬性,預設bean的id是當前類的類名。首字母小寫。
1.3@service
作用: 呼叫無參構造建立乙個bean物件,並把物件存入spring的ioc容器,交由spring容器進行管理。相當於在xml中配置乙個bean。一般用於業務層的註解
屬性: value:指定bean的id。如果不指定value屬性,預設bean的id是當前類的類名。首字母小寫。
1.4@repository
作用: 呼叫無參構造建立乙個bean物件,並把物件存入spring的ioc容器,交由spring容器進行管理。相當於在xml中配置乙個bean。一般用於持久層的註解
屬性: value:指定bean的id。如果不指定value屬性,預設bean的id是當前類的類名。首字母小寫。
1.5@bean
作用:用於把當前方法的返回值作為bean物件存入spring的ioc容器中 屬性:name:用於指定bean的id。當不寫時,預設值是當前方法的名稱。注意:當我們使用註解配置方法時,如果方法有引數,spring框架會去容器中查詢有沒有可用的bean物件,查詢的方式和autowired註解的作用是一樣的。
例: 獲取datasource物件 @return @bean(value = "datasource") public datasource getdatasource()catch(exception exception)
}(2).用於依賴注入的註解
2.1@autowired
作用:@autowired和@resource**都是spring支援的註解形式動態裝配bean的方式。@autowired預設按照型別(bytype)裝配,如果想要按照名稱(byname)裝配,需結合@qualifier註解使用。
屬性:required:@autowired註解預設情況下要求依賴物件必須存在。如果不存在,則在注入的時候會丟擲異常。如果允許依賴物件為null,需設定required屬性為false。
例: @autowired @qualifier("userservice")
private userservice userservice;
2.2@qualifier
作用:在自動按照型別注入的基礎之上,再按照 bean 的 id 注入。它在給字段注入時不能獨立使用,必須和@autowire一起使用;但是給方法引數注入時,可以獨立使用。 在自動按照型別注入的基礎之上,再按照bean的id注入.它在給字段注入時不能獨立使用,必須和@autoire一起使用;但是給方法引數注入時,可以獨立使用。
屬性:value:用於指定要注入的bean的id,其中,該屬性可以省略不寫
例:@autowire
@qualifier(value="userservice")
//@qualifier("userservice") //value屬性可以省略不寫
private userservice userservice;
2.3 @resource
作用:@autowire和@resource都是spring支援的註解形式動態裝配bean的方式。@resource預設按照名稱(byname)裝配,名稱可以通過name屬性指 定。如果沒有指定name,則註解在字段上時,預設取(name=欄位名稱)裝配。如果註解在setter方法上時,預設取(name=屬性名稱)裝配。
屬性:name:用於指定要注入的bean的id
type:用於指定要注入的bean的type
裝配順序
1.如果同時指定name和type屬性,則找到唯一匹配的bean裝配,未找到則拋異常;
2.如果指定name屬性,則按照名稱(byname)裝配,未找到則拋異常;
3.如果指定type屬性,則按照型別(bytype)裝配,未找到或者找到多個則拋異常;
4.既未指定name屬性,又未指定type屬性,則按照名稱(byname)裝配;如果未找到,則按照型別(bytype)裝配。
例:@resource(name="userservice")
//@resource(type="userservice")
//@resource(name="userservice", type="userservice")
private userservice userservice;
2.4 @value
作用:通過@value可以將外部的值動態注入到bean中,可以為基本型別資料和string型別資料的變數注入資料
例:// 1.基本型別資料和string型別資料的變數注入資料
@value("tom")
private string name;
@value("18")
private integer age;
// 2.從properties配置檔案中獲取資料並設定到成員變數中
// 2.1jdbcconfig.properties配置檔案定義如下
jdbc.driver \= com.mysql.jdbc.driver
jdbc.url \= jdbc:mysql://localhost:3306/eesy
jdbc.username \= root
jdbc.password \= root
// 2.2獲取資料如下
@value("$")
private string driver;
@value("$")
private string url;
@value("$")
private string username;
@value("$")
private string password;
(3)用於改變bean作用範圍的註解
3.1@scope
作用:指定bean的作用範圍
屬性:value:
1)singleton:單例
2)prototype:多例
3)request:
4)session:
5)globalsession:
例:@autowire
@scope(value="prototype")
private userservice userservice;
(4)生命週期相關的註解
@postconstruct
作用:指定初始化方法
例:@postconstruct
public void init()
4.2 @predestroy
作用:
指定銷毀方法
例:@predestroy
public void destroy()
-----dao
@repository --寫在dao層
-----service
@service --寫在service層
-----controller
@controller --寫在controller層
@scope --寫在多人訪問controller上 單例
@scope("prototype") 多例
-----屬性注入
@autowired --寫在需要注入的屬性上
@resource(name="loginservice")與autowired類似,但是需要通過指定名字去尋找找對應名字的注入物件
@inject 與autowired和resource
-----資源處理
也可以寫在controller上,controller上的也可以省略
Spring中常用註解
註解的好處在於大大的減少了人們開發的程式設計量,提高了程式設計效率,那麼下面就接受經常用到的一些註解及其含義等。componentscan 元件掃瞄,可自動發現和裝配一些bean。component可配合commandlinerunner使用,在程式啟動後執行一些基礎任務。restcontrolle...
Spring中常用的註解
1 configuration 表明這個乙個配置類,主要用於配置bean。例如通過 bean註解往ioc容器中新增bean configuration public class mainconfig public class main 2 componetscan 可以掃瞄指定包下的帶有 compo...
Spring 中常用的幾種註解
spring 2.5 中除了提供 component 注釋外,還定義了幾個擁有特殊語義的注釋,它們分別是 repository service 和 controller。在目前的 spring 版本中,這 3 個注釋和 component 是等效的,但是從注釋類的命名上,很容易看出這 3 個注釋分別...