javascript
SpringBoot的@SpringBootApplication注解和其他几个注解
轉載自?https://blog.csdn.net/zzzgd_666/article/details/80310840
首先,我們來看看@SpringBootApplication注解代碼,如下代碼,它分別繼承了3個注解
1、@EnableAutoConfiguration 2、@ComponentScan 3、@SpringBootConfiguration- ?
- ?
所以它同時具備了@ComponentScan、@EnableAutoConfiguration的功能。
很多Spring Boot開發者總是使用 @Configuration , @EnableAutoConfiguration 和 @ComponentScan 注解他們的main類。 由于這些注解被如此頻繁地一塊使用(特別是你遵循以上最佳實踐時) , Spring Boot提供一個方便的 @SpringBootApplication 選擇。該 @SpringBootApplication 注解等價于以默認屬性使用 @Configuration , @EnableAutoConfiguration 和 @ComponentScan 。
main應用類的位置
一般來說, main應用類應該放在其他類上面的根包(root package) 中,此時@ComonentScan注解不需要配置basePackage屬性,這個包下的所有子包和子類都會被掃描。
下面是一個典型的結構:
cn+- zgd+- project+- Application.java|+- domain| +- Customer.java| +- CustomerRepository.java|+- service| +- CustomerService.java|+- web+- CustomerController.java- 1
- ?
@EnableAutoConfiguration
這個注解是Spring應用程序上下文的自動配置,嘗試猜測和配置您可能需要的bean。自動配置類通常基于類路徑和定義的bean應用。例如,如果你有 tomcat-embedded.jar在您的類路徑中,你可能會想要一個TomcatEmbeddedServletContainerFactory(除非你定義自己的EmbeddedServletContainerFactory bean)。
當然我們也可能不需要他自動配置,這時候需要用排除的方式:
@Configuration //exclude= {DataSourceAutoConfiguration.class} 通過排除屬性來禁止DataSourceAutoConfiguration的配置 @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class}) @ComponentScan public class Application { .....- ?
Spring Beans和依賴注入
你可以自由地使用任何標準的Spring框架技術去定義beans和它們注入的依賴。 這里經常使用 @ComponentScan 注解搜索beans, 并結合 @Autowired 構造器注入。?
如果使用上面建議的結構組織代碼(將應用類放到根包下) , 你可以添加 @ComponentScan 注解而不需要任何參數。 你的所有應用程序組件(@Component , @Service , @Repository , @Controller 等) 將被自動注冊為Spring Beans。
總結
以上是生活随笔為你收集整理的SpringBoot的@SpringBootApplication注解和其他几个注解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Concurrent——Atomic原子
- 下一篇: Spring MVC中的拦截器/过滤器H