@EnableAutoConfiguration
spring boot会根据您在类路径中添加的jar告诉您如何配置spring。例如,如果spring-boot-starter-web
在类路径中添加依赖项,它将自动配置Tomcat和Spring MVC。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
您可以将@EnableAutoConfiguration
注释与@Configuration
注释一起使用。它有两个可选元素,
- exclude:如果要排除类的自动配置。
- excludeName:如果要使用类的完全限定名称排除类的自动配置。
例子:
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}
@EnableAutoConfiguration(excludeName = {"org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration"})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@SpringBootApplication
是@EnableAutoConfiguration
Spring Boot 1.2中引入的较新版本。
@SpringBootApplication
是三个注释的组合,
@Configuration
-用于基于Java的配置类。
@ComponentScan
-要启用组件扫描,将自动扫描所有应用了@SpringBootApplication的根软件包下的软件包和子软件包。
@EnableAutoConfiguration
-启用
基于classpath中添加的jar的类的自动配置。
@ComponentScan
启用组件扫描,以便在Spring的应用程序上下文中自动发现Web控制器类和您创建的其他组件并将其注册为bean。您可以指定将被扫描以自动发现和注册Bean的基本软件包。
可选元素之一是,
- basePackages-可用于声明要扫描的特定程序包。
例,
@ComponentScan(basePackages = {"com.example.test"})
@Configuration
public class SpringConfiguration { }
@SpringBootApplication
吗 这是两个替代你所提到的