@EnableAutoConfiguration和@SpringbootApplication注解

盛年不重来,一日难再晨,及时当勉励,岁月不待人。这篇文章主要讲述@EnableAutoConfiguration和@SpringbootApplication注解相关的知识,希望能为你提供帮助。
一、@EnableAutoConfiguration【@EnableAutoConfiguration和@SpringbootApplication注解】这个注释告诉SpringBoot"猜"你将如何想配置Spring,基于你已经添加jar依赖项。如果spring-boot-starter-web已经添加Tomcat和Spring MVC,这个注释自动将假设您正在开发一个web应用程序并添加相应的spring设置。
自动配置被设计用来和“Starters”一起更好的工作,但这两个概念并不直接相关。您可以自由挑选starter依赖项以外的jar包,springboot仍将尽力自动配置您的应用程序。
spring通常建议我们将main方法所在的类放到一个root包下,@EnableAutoConfiguration(开启自动配置)注解通常都放到main所在类的上面,下面是一个典型的结构布局:

com +- example +- myproject +- Application.java | +- bean |+- Customer.java | +- service |+- CustomerService.java | +- web +- CustomerController.java

使用@EnableAutoConfiguration注解时,必须得配置@ComponentScan(basePackages = "com.example.web, com.example.service"),才能扫描service及web下的类,并进行调用。
 
二、@SpringBootApplication使用@SpringbootApplication注解 ,可以解决根类或者配置类(我自己的说法,就是main所在类)头上注解过多的问题,一个@SpringbootApplication相当于
@Configuration@EnableAutoConfiguration@ComponentScan,并具有他们的默认属性值
查看@SpringBootApplication注解源码:
@EnableAutoConfiguration和@SpringbootApplication注解

文章图片

@CompoentScan:可以解决根类或者配,告诉Spring哪个package的用注解标识的类会被spring自动扫描并且装入bean容器
默认情况下是加载和Application类所在同一个目录下的所有类,包括所有子目录下的类
 

    推荐阅读