javascript
Spring Boot中的@SpringBootConfiguration注释
Spring Boot中的 @SpringBootConfiguration注釋是一個類級別的注釋,它指示此類提供了應用程序配置。
通常,具有main()方法的類最適合此注釋。
我們通常使用@SpringBootApplication批注,該批注會自動繼承@SpringBootConfiguration批注。
注釋用法:
當我們使用@SpringBootConfiguration標記一個類時,這意味著該類提供了@Bean定義方法。 Spring容器處理配置類以為我們的應用實例化和配置bean。
讓我們看一下這個注釋的用法示例:
@SpringBootConfiguration public class DemoApp {public static void main(String[] args) {SpringApplication.run(DemoApp.class, args);}@Beanpublic Course course() {return new Course();}@Beanpublic Student student() {return new Student();} }根據Spring文檔, @ SpringBootConfiguration只是Spring標準@Configuration批注的替代方法。 兩者之間的唯一區別是@SpringBootConfiguration允許自動找到配置。
這在編寫測試時特別有用。
如前所述, @SpringBootApplication批注包括@SpringBootConfiguration批注:
@Target(value=TYPE) @Retention(value=RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters={@ComponentScan.Filter(type=CUSTOM,classes=TypeExcludeFilter.class)}) public @interface <span class="memberNameLabel">SpringBootApplication</span>我們最通常只使用@SpringBootApplication ,后者又包含了另一個。
請注意,建議在我們的應用程序中僅使用一個@SpringBootConfiguration或@SpringBootApplication批注。
在為我們的Spring Boot應用程序編寫測試用例時,我們遇到的常見異常之一是:
Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...)with your test java.lang.IllegalStateException造成這種情況的主要原因通常是,像@DataJpaTest之類的測試注釋以及其他一些注釋首先在當前包中尋找@SpringBootConfiguration注釋。 萬一它在當前包中丟失了,他們開始查找包層次結構,直到找到此注釋。
確保您的測試類與使用@SpringBootApplication標記的類位于同一包中,或者至少位于包層次結構中較低的類中:
sample-app+--pom.xml+--src+--main+--com+--programmergirl+--Application.java+--test+--com+--programmergirl+--test+--SampleJpaTest.java這樣可以解決此問題。
結論:
在這個迷你教程中,我們討論了@SpringBootConfiguration批注。 我們還看到,@SpringBootApplication包括對@SpringBootConfiguration的定義。
并且,我們將標準的Spring @Configuration與@SpringBootConfiguration進行了比較 。
我們還有另一篇關于Spring核心注釋的文章,可以幫助您學習Spring應用程序中使用的一些常見注釋。 如果您愿意,請隨時進行探索。
翻譯自: https://www.javacodegeeks.com/2019/09/springbootconfiguration-annotation-spring-boot.html
總結
以上是生活随笔為你收集整理的Spring Boot中的@SpringBootConfiguration注释的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑是怎么知道它自己已经联上网怎么知道电
- 下一篇: jpa 返回数据转换_如何使用JPA类型