2021-08-17 15:47

SpringBoot中获取所有Bean的信息

王姐姐

JavaEE

(1689)

(0)

收藏

通过CommandLineRunner接口,可以实现在Spring Boot完全启动后执行一些代码逻辑,本文将执行的逻辑是打印所有Bean的信息;

1) 通过 ApplicationContext.getBeanDefinitionNames() 方法获取所有Bean的名称;

2) 通过 ApplicationContext.getBean(beanName)获取Bean的详细信息;

public class BootdemoApplication implements CommandLineRunner {

    public static void main(String[] args) {
        SpringApplication.run(BootdemoApplication.class, args);
        /*SpringApplication application = new SpringApplication(BootdemoApplication.class);
        //关闭banner条显示
        application.setBannerMode(Banner.Mode.OFF);
        application.run(args);*/
    }

    @Autowired
    private ApplicationContext applicationContext;

    @Override
    public void run(String... args) throws Exception
    {
        String[] beans = applicationContext.getBeanDefinitionNames();
        Arrays.sort(beans);
        for (String bean : beans)
        {
            System.out.println("bean id:"+bean+",bean类型:" + applicationContext.getBean(bean).getClass());
        }
    }

}


0条评论

点击登录参与评论