1.凌乱学习
- org.springframework.context.annotation.ConfigurationClassParser#doProcessConfigurationClass
构建程序包下所有类的ConfiguraClass,这个地方会有ComponentScan的实现;并将解析的Class信息添加到DefaultListableBeanFactory.beanDefinitionMap中; - Spring在创建Bean时,有可能会出现循环依赖的情况。为了解决这个问题,Spring会先创建所有的Bean实例,并且在后续的处理中,再进行依赖注入和初始化操作。
- @ConditionalOnMissingBean一种错误实现
需要使用另一种方式实现@ConditionalOnMissingBean,参照如下
或者直接参考org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration