Spring常用註解:
用於創建對象:他們的作用就是和在xml配置文件中編寫一個<bean>標籤實現功能是一樣的
用於注入數據:他們作用和在xml中的<bean>標籤中寫一個properties標籤作用是一樣的
用於改變作用範圍:他們的作用集合在bean標籤中使用scope屬性屬性實現功能是一樣的
和生命週期相關:作用和在<bean>標籤中使用init-method和destory-method的作用是一樣的
1、用於創建對象的:
@Component:作用:用於把當前類對象存入Spring中,會把註解標識的類創建成一個對象,存入Spring中,
屬性:用於指定bean的id,當我們不寫時,他的默認值是當前類名,且首字母改小寫
@Controller :一般用在表現層
@Service:一般用在業務層
@Repository:一般用在持久層
以上註解地作用和@Component是一模一樣的,他們三個是Spring框架爲我們提供明確的三層使用註解,使我們的三層對象更加清晰。
2、用於注入數據的:
@Autowried:作用:按照類型注入,只要容器中有唯一一個bean對象類型和要注入的變量類型匹配,就可以注入成功用於改變作用範圍的,他們的作用就和在bean標籤中使用scop屬性實現的功能是一樣的,如果容器中沒有人任何bean類型和要注入的變量類型匹配,則報錯。如果IOC容器中有多個類型匹配時,首先按照類型圈定出匹配對象,然後會使用變量名稱,在圈定出的兩個裏面繼續查找,如果有一樣的,也可以注入成功。
出現位置:可以是成員變量上,也可以是方法上。
在使用註解注入時,set方法就不是必須的(SpringIOC容器是一個map結構)
那麼就是兩個bean相同時,改id
@Qualifier:作用:按照類中注入的基礎上再按照名稱注入,它在給類成員注入時不單獨使用,但是在給方法注入時可以
屬性:value,用於指定注入bean的id
@Resource:作用:直接按照bean的id注入,它可以獨立使用
屬性:name,用於指定bean的Id
以上三個註解都只能注入其他bean類型的數據,而基本類型和String類型無法使用上述註解實現。 另外,集合類型的注入只能通過XML實現。
@Value :作用:用於注入基本類型和String類型的數據
屬性:Value,用於指定數據的值,它可以使用Spring中的SpEl(也就是spring的el表達式)
SpEl的寫法:${表達式}
用於改變作用域範圍:
Scope:用於指定bean作用範圍
屬性:
value:指定範圍的取值,常用取值,singleton,prototype
注:多例對象銷燬Spring是不負責的
和生命週期相關:
PreDestroy:作用,用於指定銷燬方法
PostConstruct:作用,用於指定初始化方法