這篇文章帶給大家的內容是關於Spring Boot最核心的3個註解的介紹(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
最近面試一些 Java 開發者,他們其中有些在公司實際用過 Spring Boot, 有些是自己興趣愛好在業餘自己學習過。然而,當我問他們 Spring Boot 最核心的 3 個註解是什麼,令我失望的是鮮有人能答上來,這樣你能說你對 Spring Boot 很了解嗎?這可能還會讓你減分!
Spring Boot 核心註解講解
Spring Boot 最大的特點是無需XML 配置文件,能自動掃描包路徑裝載並註入對象,並能做到根據classpath下的jar 包自動配置。
所以Spring Boot 最核心的3 個註解就是:
1、@Configuration
org.springframework.context.annotation.Configuration
這是Spring 3.0 新增的註解,用來取代applicationContext.xml 設定文件,所有這個設定檔裡面能做到的事情都可以透過這個註解所在類別來進行註冊。
下面幾個相關註解也是很重要的!
@Bean
用來取代 XML 設定檔裡面的
@ImportResource
如果有些透過類別的註冊方式配置不了的,可以透過這個註解引入額外的XML 設定文件,有些舊的設定檔無法通過@Configuration
方式配置的非常管用。
@Import
用來引入額外的一個或多個 @Configuration 修飾的設定檔類別。
@SpringBootConfiguration
這個註解就是@Configuration 註解的變體,只是用來修飾是Spring Boot 配置而已,或者可利於Spring Boot 後續的擴展,源碼如下。
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Configuration public @interface SpringBootConfiguration { }
2、@ComponentScan
org.springframework.context.annotation.ComponentScan
這是Spring 3.1 加入的註解,用來取代設定檔中的component-scan 配置,開啟元件掃描,即自動掃描包路徑下的@Component 註解進行註冊bean 實例到context 中。
另外,@ComponentScans 是可重複註解,也就是可以設定多個,用來設定註冊不同的子套件。
3、@EnableAutoConfiguration
org.springframework.boot.autoconfigure.EnableAutoConfiguration
#看全路徑就知道,這是自Spring Boot 誕生時新增的註解,用來提供自動配置,上面的兩個都是spring-context
套件下的,不屬於Spring Boot,所以Spring 3.0 之後的去XML 配置方式已經為Spring Boot 埋下了伏筆!
自動配置更多詳細使用及實戰可以看這篇文章《Spring Boot自動配置原理、實戰》。
Spring Boot 最核心的 3 個註解介紹完了,大家可能會有疑問,為什麼最主要的註解 @SpringBootApplication 不在其中?
留給大家的彩蛋,其實這個 @SpringBootApplication 註解就包含了以上 3 個主要註解,平時沒有自訂配置的需求,則使用 @SpringBootApplication 註解完全就可以了!
讓我們來看看 @SpringBootApplication 註解的原始碼,一切明了!
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication { ... }
以上是Spring Boot最核心的3個註解的介紹(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!