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

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

相关推荐
提子拌饭1333 分钟前
个人月事记录表应用 - 鸿蒙PC Electron框架完整实现指南
前端·javascript·华为·electron·前端框架·开源·鸿蒙系统
人道领域8 分钟前
【LeetCode刷题日记】131.分割回文串,动态规划优化
java·开发语言·leetcode
YHL11 分钟前
📚 JS执行机制(执行上下文 + 调用栈 + 编译流程)
前端·javascript
不简说16 分钟前
这次真香!sv-print 可视化打印设计器更新:插件脚手架、Excel 导出、弹窗 API 三连发
前端·javascript·前端框架
z落落20 分钟前
C# 接口 interface (多接口实现、类+接口、成员重名)
java·开发语言
无聊的老谢21 分钟前
Web GIS 最佳实践:Vue 集成 Leaflet/OpenLayers 实现基站海量点位渲染
前端·javascript·vue.js
yingyima24 分钟前
GCP Cloud Scheduler 核心语法与实战示例速查手册
前端
用户573501072520625 分钟前
Elpis 项目阶段性总结 - 基于 vue3 完成领域模型架构建设
前端
发际线向北26 分钟前
0x05 深入了解JVM虚拟机(JVM方法调用 -Ⅰ)
java
宋哥转AI29 分钟前
学了Spring AI Graph再看LangGraph,发现API几乎一模一样
java·人工智能·agent