继续记录一些琐碎的知识
如何根据条件生成Bean
- @Conditional 系列 ------ 按条件注册Bean
作用:满足某个条件才创建Bean
常用:
@ConditionalOnClass
@ConditionalOnBean
@ConditionalOnProperty
自定义 Condition
场景:根据配置、环境、依赖包存在与否,决定要不要创建Bean。
- @Configuration + @Bean + 配置属性 ------ 编程式创建
从 application.yml 读取配置
在 @Bean 方法里写代码逻辑
满足条件就 new 对象返回,不满足就返回 null 或不创建
- @Profile ------ 按环境激活Bean
根据 spring.profiles.active 决定是否生效
dev、test、prod 不同环境注册不同Bean
- 手动注册Bean(底层)
通过 BeanDefinitionRegistry
或 ApplicationContext.getAutowireCapableBeanFactory()
代码里手动注册、动态创建