您好,登錄后才能下訂單哦!
小編給大家分享一下Spring Boot如何配置導入,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
我們知道在 Spring Boot 中可以用一個 @Configuration
配置文件來配置所有 Bean 及其他配置,但其實沒必要這么做。
我們可以把相關的配置獨立出來,放到多個 @Configuration
中,如以下參考:
MainConfiguration:項目主要配置
DataSoureceConfiguration:數據源配置
RedisConfiguration:Redis配置
MongoDBConfiguration:MongoDB配置
這時候 @Import
注解就能派上用場了,來看下它的源碼:
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Import { /** * {@link Configuration}, {@link ImportSelector}, {@link ImportBeanDefinitionRegistrar} * or regular component classes to import. */ Class<?>[] value(); }
可以導入這三類注冊文件:
Configuration
ImportSelector
ImportBeanDefinitionRegistrar
第一個已經講過了,其他兩個后面會講,關注Java技術棧微信公眾號,獲取第一時間推送。
先來看一個 @Import
示例,直接導入其他配置文件:
@Configuration @Import({ RedisConfiguration.class }) public class MainConfiguration { // ... }
當然,如果這些配置文件都在類掃描路徑下,不用 @Import
導入注解,直接用 @ComponentScan
也能搞定,這個默認的 @SpringBootApplication
注解就包含了,不需要再重復加。
再者,@Enable*
注解也能派上用場:
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Import(RedisConfiguration.class) public @interface EnableRedis { }
具體可以參考這篇文章:Spring Enable*高級應用及原理,另外,關注Java技術棧微信公眾號,在后臺回復:spring,可以獲取更多 Spring 干貨。
那么問題來了,老項目想用 Spring Boot 框架,但還有大量的 XML 配置文件,很難遷移到 @Configuration
配置文件里面來,怎么處理?
棧長繼續給你支招!
答案就是:@ImportResource
注解,來看下它的源碼:
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Documented public @interface ImportResource { @AliasFor("locations") String[] value() default {}; @AliasFor("value") String[] locations() default {}; Class<? extends BeanDefinitionReader> reader() default BeanDefinitionReader.class; }
@ImportResource
可以指定要導入的 XML 配置文件的路徑,還能指定自定義的 BeanDefinitionReader
。
來一個示例,導入一個類路徑下的 XML 配置文件:
@Configuration @ImportResource("classpath:config/spring-mvc.xml") public class MainConfiguration { // ... }
以上是“Spring Boot如何配置導入”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。