阿亮随手记:动态条件生成Bean

继续记录一些琐碎的知识

如何根据条件生成Bean

  1. @Conditional 系列 ------ 按条件注册Bean
  • 作用:满足某个条件才创建Bean

  • 常用:

  • @ConditionalOnClass

  • @ConditionalOnBean

  • @ConditionalOnProperty

  • 自定义 Condition

  • 场景:根据配置、环境、依赖包存在与否,决定要不要创建Bean。

  1. @Configuration + @Bean + 配置属性 ------ 编程式创建
  • 从 application.yml 读取配置

  • 在 @Bean 方法里写代码逻辑

  • 满足条件就 new 对象返回,不满足就返回 null 或不创建

  1. @Profile ------ 按环境激活Bean
  • 根据 spring.profiles.active 决定是否生效

  • dev、test、prod 不同环境注册不同Bean

  1. 手动注册Bean(底层)
  • 通过 BeanDefinitionRegistry

  • 或 ApplicationContext.getAutowireCapableBeanFactory()

  • 代码里手动注册、动态创建

相关推荐
iameyama1 小时前
python Pandas 开发
数据库
Highcharts.js1 小时前
数据之美:用Highcharts打造专业级弧线图
javascript·数据库·highcharts·图表开发·弧线图
mclwh2 小时前
关于React-Konva 报:Text components are not supported....错误的问题
前端·react.js
丹牛Daniel2 小时前
Java解决HV000183: Unable to initialize ‘javax.el.ExpressionFactory‘
java·开发语言·spring boot·tomcat·intellij-idea·个人开发
SuperEugene2 小时前
错误处理与 try/catch:真实项目里应该捕什么错?
前端·javascript·面试
消失的旧时光-19432 小时前
智能指针(三):实现篇 —— shared_ptr 的内部设计与引用计数机制
java·c++·c·shared_ptr
芒克芒克2 小时前
深入浅出CopyOnWriteArrayList
java
wuqingshun3141592 小时前
说一下java的反射机制
java·开发语言·jvm
禹凕3 小时前
MySQL——基础知识(正则表达式)
数据库·mysql·正则表达式