Spring Boot到底是如何进行自动配置的?
Spring Boot的自动配置是通过@EnableAutoConfiguration
注解触发的,它会扫描应用的类路径,根据依赖的jar包来自动配置Spring应用程序。这是通过spring-boot-autoconfigure
模块实现的。
自动配置的条件是:
- 类路径上存在相应的Spring Boot Starter依赖。
- 相关的配置类中的条件注解(
@ConditionalOnClass
,@ConditionalOnMissingBean
等)满足条件。
以下是一个简单的例子,展示了如何创建自定义的自动配置:
@Configuration
@ConditionalOnClass(MyService.class)
@EnableConfigurationProperties(MyProperties.class)
public class MyAutoConfiguration {
private final MyProperties properties;
public MyAutoConfiguration(MyProperties properties) {
this.properties = properties;
}
@Bean
@ConditionalOnMissingBean
public MyService myService() {
return new MyService(properties);
}
}
在这个例子中,MyAutoConfiguration
仅在类路径上存在 MyService.class
类时才会配置 MyService
实例作为Spring容器中的Bean。同时,它利用 MyProperties
类来绑定外部配置文件中的属性。
要使自动配置生效,你需要在主配置类上添加 @EnableAutoConfiguration
注解:
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
@SpringBootApplication
注解是一个组合注解,包含了 @EnableAutoConfiguration
,所以不需要额外添加。
评论已关闭