阿亮随手记:动态条件生成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()

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

相关推荐
IT_陈寒11 小时前
React的这个渲染问题连官方文档都没说清楚
前端·人工智能·后端
狼爷12 小时前
吃透 Java Function 接口,搞定 99% 的 Stream 场景
java·函数式编程
追逐时光者12 小时前
别再满网找零散工具了,腾讯 QQ 浏览器这个“帮小忙”工具箱真能省时间
前端·后端
笃行35014 小时前
金仓数据库数据安全双防线:静态存储加密与传输加密实战
数据库
笃行35014 小时前
金仓数据库物理备份实战:sys_rman 全流程演练与误覆盖抢救
数据库
Asmewill14 小时前
grep&curl命令学习笔记
前端
stringwu14 小时前
Flutter 开发必备:MVI 架构的高效实现指南
前端·flutter
笃行35014 小时前
金仓数据库逻辑备份实战:从全库导出到 Schema 替换的完整闭环
数据库
用户21366100357215 小时前
Vue2组件化开发与父子通信
前端·vue.js