怎么查看 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 ";
    }

}

 

posted @ 2024-03-08 22:29  晓枫的春天  阅读(36)  评论(0编辑  收藏  举报