怎么查看 Ioc 容器包含指定 bean
问题描述
今天工作中遇到了一个场景,通过读取 yml 配置 bean 信息,如果容器中包含指定 bean 则进行下一步处理,否则先创建 bean,在进行下一步操作,脑子一下子不动了,不知如何判断 容器中是否含有指定 bean
判断方法
类中注入 ApplicationContext 通过 bean 名称判断就行了
1、写三个bean,注入其2
public class Dog { }
@Component public class EMP_Test { }
@Component public class Cat { }
2、找一个方法拿到 ioc 容器遍历即可
@Slf4j @RestController public class HelloController { @Resource private ApplicationContext applicationContext; @GetMapping("/hi1") private String hi1() { String[] beanDefinitionNames = applicationContext.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) { System.out.println(beanDefinitionName); if (beanDefinitionName.equalsIgnoreCase("CAT") || beanDefinitionName.equalsIgnoreCase("EMP_TEST")) { System.out.println("------------------------------------"); } } return "welcome to spring's world "; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
2023-03-08 Java 逻辑运算
2022-03-08 hive 剔除极值后取均值问题