SpringBoot 自动装配机制、Bean 加载控制
SpringBoot 的自动装配机制主要是通过 @EnableAutoConfiguration
注解和 @SpringBootApplication
注解来实现的。@SpringBootApplication
是一个组合注解,包含了 @EnableAutoConfiguration
,而后者是自动装配的核心。
@EnableAutoConfiguration
会扫描 classpath 下的 META-INF/spring.factories
文件,查找并实例化所有自动配置类。这些自动配置类会根据 classpath 上的条件注解(如 @ConditionalOnClass
,@ConditionalOnMissingBean
等)进行条件判断,根据条件判断结果决定是否创建 Bean。
控制 Bean 的加载,可以使用 @Conditional
系列注解,或者通过 @Bean
注解在配置类中直接控制。
以下是一个简单的例子:
@Configuration
public class MyConfiguration {
@Bean
@ConditionalOnMissingBean(name = "customBean")
public MyBean myBean() {
return new MyBean();
}
}
在这个例子中,@ConditionalOnMissingBean(name = "customBean")
注解意味着只有在容器中不存在名为 "customBean" 的 Bean 时,myBean()
方法才会创建一个 MyBean
类型的 Bean。
另外,如果你想要完全控制 Bean 的加载,可以使用 @Import
注解来导入其他配置类:
@Configuration
@Import(CustomConfiguration.class)
public class MyConfiguration {
// ...
}
在 CustomConfiguration
类中,你可以完全控制 Bean 的创建。
评论已关闭