SpringBoot精选Spring Boot程序员

配置是否初始化Bean的方法

2015-12-10  本文已影响17921人  程序熊大

Spring Boot:定制自己的starter一文提到,只要DbCountRunner这个类在classpath路径下,Spring Boot会自动创建对应的spring bean并添加到应用程序上下文中。

在文章最后提到,Spring Boot的自动配置机制依靠@ConditionalOnMissingBean注解判断是否执行初始化代码,即如果用户已经创建了bean,则相关的初始化代码不再执行。

现在在上篇文章的基础上进行演示,看看@ConditionalOnMissingBean注解的作用。

How Do

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
@Configuration
public class DbCountAutoConfiguration {
    @Bean
    @ConditionalOnMissingBean
    public DbCountRunner dbCountRunner(Collection<CrudRepository> repositories) {
        return new DbCountRunner(repositories);
    }
}
@Bean
public DbCountRunner dbCountRunner(Collection<CrudRepository> repositories) {
    return new DbCountRunner(repositories) {
        @Override
        public void run(String... strings) throws Exception {
            logger.info("Manually Declared DbCountRunner");
        }
    };
}
修改后的日志信息,显示手动配置bean
上一篇 下一篇

猜你喜欢

热点阅读