在这个特别的日子里,我第一个想到的,是 李健 在 我是歌手 中演唱的《父亲写的散文诗》,又让我想起了参加我是歌手的每一位歌手,对待自己所热爱的事业的坚持和执着。
歌手,是一个职业,但每一个好的歌手,都不会仅仅把它当做一个职业。
拥有坚定的信念时,一切阻碍都能想办法克服;否则,任何理由都可以成为失败的借口。
就像父亲为了孩子,会竭尽全力一样。
借此机会,致敬每一位为了信念,不轻言放弃,拼命坚持的人!
真的是 @ConditionalOnMissingBean 不行吗?
Spring Boot 提供了一系列 @ConditionalOnXXXX 注解,用来在满足或不满足一定条件时,才进行 Bean 的注册。例如:
@Configuration(proxyBeanMethods = false)
public class MyAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public SomeService someService() {
return new SomeService();
}
}
那么,假如定义了一个 TestService 接口,按如下方式定义其实现类时,会发生什么呢?
@Service
@ConditionalOnMissingBean(TestService.class)
public class TestServiceImpl implements TestService
- 这个名为
testServiceImpl
的 Bean 会不会注册上呢?为什么? - @Autowired TestService 时,会不会得到实例呢?为什么?
先卖个关子,不说明原因,仅仅说下结果:
- 名为
testServiceImpl
的 Bean 会被注册 - 但无法注入 TestService 的实例
提供一个包含上述代码的可运行环境:https://github.com/AlphaHinex/conditional-on-missing-bean-demo
欢迎感兴趣的小伙伴后台留言说明上面两个问题的原因,谜底下周揭晓!