美文网首页
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