1、問題描述
javacofig使用註解來描述Bean配置的組件,記錄幾個常用的註解,以便後續回顧。
2、問題說明
(1)@Configuration
在類上打上這一標籤,表示這個類是配置類
(2)@Bean
bean的定義,相當於xml的
<bean id="laowangService" class="org.abc.map.LaowangService" />
(3)@Import註解須知
-
@Import只能用在類上 ,@Import通過快速導入的方式實現把實例加入spring的IOC容器中
-
加入IOC容器的方式有很多種,@Import註解可以用於導入第三方包 ,當然@Bean註解也可以,但是@Import註解快速導入的方式更加便捷
啓動類中加上@Enable**的,是用@import註解,加載到ioc容器中的。
(4)@ImportResource
相當於xml:
<import resource="applicationContext-xxx.xml">
(5)@PropertySource
spring 3.1開始引入,它是基於java config的註解,用於讀取properties文件
(6)@AliasFor
表示別名,它可以添加到自定義註解的兩個屬性上,表示這兩個屬性互爲別名。也就是說,這兩個屬性其實是同一個含義。
public @interface Configuration {
@AliasFor(annotation = Component.class)
String value() default "";
@Controller等註解本質上也是@Component
@SpringBootApplication註解,其實是三個註解的組合,分別是:
(7)@SpringBootConfiguration
@SpringBootConfiguration等同於@Configuration,帶有spring的標誌,是屬於spring的一個配置類
(8)@EnableAutoConfiguration
@EnableAutoConfiguration 也是藉助 @Import 的幫助,將所有符合自動配置條件的 bean 定義加載到 IoC 容器。
(9) ComponentScan()
相當於xml的<context:componentscan basepakage=>,默認情況下就不需要配置@ComponentScan這個註解了。 因爲Application類,在啓動的時候,默認是加載和Application類所在同一個目錄下的所有類,包括所有子目錄下的類。
更多信息請關注公衆號:「軟件老王」,關注不迷路,軟件老王和他的IT朋友們,分享一些他們的技術見解和生活故事。