他們的做用就和在XML配置文件中編寫一個<bean>標籤實現的功能是同樣的java
做用:用於把當前類對象存入spring容器中spring
屬性:數據庫
value:用於指定bean的id。當咱們不寫時,它的默認值是當前類名,且首字母改小寫。框架
==以上三個註解他們的做用和屬性與Component是如出一轍。他們三個是spring框架爲咱們提供明確的三層使用的註解,使咱們的三層對象更加清晰==maven
他們的做用就和在xml配置文件中的bean標籤中寫一個<property>標籤的做用是同樣的ui
Autowired:spa
只要容器中有惟一的一個bean對象類型和要注入的變量類型匹配,就能夠注入成功 若是ioc容器中沒有任何bean的類型和要注入的變量類型匹配,則報錯。prototype
若是Ioc容器中有多個類型匹配時:使用要注入的對象變量做爲bean的id,在spring容器中尋找code
能夠是變量上,也能夠是方法上component
在使用註解注入時,set方法就不是必須的了。
Qualifier:
在按照類中注入的基礎之上再按照名稱注入。它在給類成員注入時不能單獨使用。可是在給方法參數注入時能夠
value:用於指定注入bean的id。
Resource:
以上三個注入都只能注入==其餘bean類型==的數據,而==基本類型和String類型==沒法使用上述註解實現。
==另外,集合類型的注入只能經過XML來實現。==
Value
value:用於指定數據的值。它可使用spring中SpEL(也就是spring的el表達式)
SpEL的寫法:${表達式}
他們的做用就和在bean標籤中使用scope屬性實現的功能是同樣的
Scope
他們的做用就和在bean標籤中使用init-method和destroy-methode的做用是同樣的
使用一個配置類,它的做用和bean.xml是同樣的
@ComponentScan("com.ming") @Import(JdbcConfig.class) @PropertySource("classpath:driuid.properties") public class SpringConfiguration { }
Configuration
ComponentScan
屬性:
value:它和basePackages的做用是同樣的,都是用於指定建立容器時要掃描的包。
咱們使用此註解就等同於在xml中配置了:
<context:component-scan base-package="com.ming"></context:component-scan>
Bean
name:用於指定bean的id。當不寫時,默認值是當前方法的名稱
當咱們使用註解配置方法時,若是方法有參數,spring框架會去容器中查找有沒有可用的bean對象。
查找的方式和Autowired註解的做用是同樣的
Import
屬性:
value:用於指定其餘配置類的字節碼。
當咱們使用Import的註解以後,有Import註解的類就父配置類,而導入的都是子配置類
//導入了和spring鏈接數據庫相關的配置類 @Import(JdbcConfig.class)
PropertySource
value:指定文件的名稱和路徑。
==關鍵字:classpath,表示類路徑下==
步驟:
使用Junit提供的一個註解把原有的main方法替換了,替換成spring提供的 @Runwith
@RunWith(SpringJUnit4ClassRunner.class)
告知spring的運行器,spring和ioc建立是基於xml仍是註解的,而且說明位置
==@ContextConfiguration==
classes:指定註解類所在地位置
@ContextConfiguration(classes = SpringConfiguration.class)
==當咱們使用spring 5.x版本的時候,要求junit的jar必須是4.12及以上==