看此文時請先查看此博文中的—註解注入本博文是他的延伸
-
@Configuration註解
作用:指定當前類是一個配置類(相當於xml配置文件的作用)
細節:當配置類作爲AnnotationConfigApplicationContext對象創建的參數時,該註解可以省略不寫。
-
@ComponentScan註解
作用:用於通過註解指定spring在創建容器時要掃描的包(相當於使用<context:component-scan base-package="com.msg"></context:component-scan>
標籤)
屬性:
value:它和context:component-scan標籤得basePackages的作用是一樣的,都是用於指定創建容器時要掃描的包。
上下兩張圖作用是一樣的
-
@Bean註解
作用:用於把當前方法的返回值作爲bean對象存入spring的ioc容器中(解決了將jar中的類對象加載到容器中的問題)
屬性:name:用於指定bean的id。當不寫時,默認值是當前方法的名稱
細節:當我們使用註解配置方法時,如果方法有參數,spring框架會去容器中查找有沒有可用的bean對象,若是查找不到則報錯,若是找得到一個則直接賦值,若是找到兩個或兩個以上則使用參數名稱與對比id賦值,若是沒有相同的我們還可以使用**@Qualifier註解**配合使用
-
@Import註解
作用:用於導入其他的配置類
屬性:
value:用於指定其他配置類的字節碼。
當我們使用Import的註解之後,有Import註解的類就父配置類,而導入的都是子配置類,並且其子類可以省略**@Configuration**註解
-
@PropertySource註解
作用:用於指定properties文件的位置
屬性:
value:指定文件的名稱和路徑。
關鍵字:classpath,表示類路徑下
讀取到的數據可以使用EL表達式取值如圖
properties文件如下
以上就是純註解開發需要使用到的註解使用純註解開發時獲取容器的方法有些不同如圖
//註解開發獲取ioc容器
ApplicationContext applicationContext01 = new AnnotationConfigApplicationContext(SpringConfig.class);
//xml開發獲取ioc容器
ApplicationContext applicationContext02 = new ClassPathXmlApplicationContext("spring.xml");