美文网首页
SpringBoot 查看自定义的 Beans

SpringBoot 查看自定义的 Beans

作者: PC_Repair | 来源:发表于2020-09-01 21:56 被阅读0次

我需要获取我在应用程序中明确创建的所有bean。 当调用applicationContext.getBeanDefinitionNames()时,我得到了一个Bean名称列表,但是其中很多不是由我而是由Spring显式创建的,我对此并不感兴趣。 目前没有可用于过滤的命名规则,因为不是Spring注入的所有bean都以“ org.springframework”开头。

image-20200901213959957.png

使用 applicationContext.getBeanDefinitionNames 并按我的根软件包名称过滤Bean(此解决方案也适用于其他用例,例如,如果我想获取在某个软件包下定义的所有Bean)。

@SpringBootApplication
public class PracticeApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(PracticeApplication.class, args);
        
        List<Object> myBeans = Arrays.stream(applicationContext.getBeanDefinitionNames())
                .filter(beanName -> applicationContext.getBean(beanName).getClass().getPackage().getName().startsWith("com.jiaflu.practice.controller"))
                .map(applicationContext::getBean)
                .collect(Collectors.toList());

        System.out.println(myBeans);
    }
}
image-20200901215341461.png

相关文章

网友评论

      本文标题:SpringBoot 查看自定义的 Beans

      本文链接:https://www.haomeiwen.com/subject/mnebsktx.html