博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot - 获取所有的Bean信息
阅读量:5935 次
发布时间:2019-06-19

本文共 3167 字,大约阅读时间需要 10 分钟。

前言

Spring Boot启动的时候需要加载许多Bean实现最小化配置,本文将尝试找出Spring启动后加载的所有Bean信息;

通过ApplicationContext 去获取所有的Bean

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

1) 通过 ApplicationContext.getBeanDefinitionNames() 方法获取所有Bean的名称;
2) 通过 ApplicationContext.getBean(beanName)获取Bean的详细信息;

具体代码实现如下:

package com.howtodoinjava.app.controller; import java.util.Arrays; import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.CommandLineRunner;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.web.support.SpringBootServletInitializer;import org.springframework.context.ApplicationContext; @SpringBootApplicationpublic class SpringBootWebApplication extends SpringBootServletInitializer implements CommandLineRunner {     @Override    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {        return application.sources(SpringBootWebApplication.class);    }     public static void main(String[] args) throws Exception {        SpringApplication.run(SpringBootWebApplication.class, args);    }         @Autowired    private ApplicationContext appContext;         @Override    public void run(String... args) throws Exception    {        String[] beans = appContext.getBeanDefinitionNames();        Arrays.sort(beans);        for (String bean : beans)        {            System.out.println(bean + " of Type :: " + appContext.getBean(bean).getClass());        }    }}

运行以上程序,控制台将打印如下信息:

2017-03-06 13:22:50 - Tomcat started on port(s): 8080 (http) basicErrorController of Type :: class org.springframework.boot.autoconfigure.web.BasicErrorControllerbeanNameHandlerMapping of Type :: class org.springframework.web.servlet.handler.BeanNameUrlHandlerMappingbeanNameViewResolver of Type :: class org.springframework.web.servlet.view.BeanNameViewResolvercharacterEncodingFilter of Type :: class org.springframework.boot.web.filter.OrderedCharacterEncodingFilterconventionErrorViewResolver of Type :: class org.springframework.boot.autoconfigure.web.DefaultErrorViewResolverdefaultServletHandlerMapping of Type :: class org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport$EmptyHandlerMappingdefaultViewResolver of Type :: class org.springframework.web.servlet.view.InternalResourceViewResolverdispatcherServlet of Type :: class org.springframework.web.servlet.DispatcherServletdispatcherServletRegistration of Type :: class org.springframework.boot.web.servlet.ServletRegistrationBeanduplicateServerPropertiesDetector of Type :: class org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration$DuplicateServerPropertiesDetectorembeddedServletContainerCustomizerBeanPostProcessor of Type :: class org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizerBeanPostProcessorerror of Type :: class org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration$SpelViewerrorAttributes of Type :: class org.springframework.boot.autoconfigure.web.DefaultErrorAttributes.........

转载地址:http://lkjtx.baihongyu.com/

你可能感兴趣的文章
城市智慧商圈将进行试点建设
查看>>
评论:是什么能够让英特尔、清华大学等三方携手?
查看>>
携手易维帮助台,神州数码轻松搞定IT外包服务
查看>>
珠海航展将首次利用大数据技术进行交通诱导
查看>>
梅耶尔将对雅虎“开刀”:裁员15%,关闭部分业务
查看>>
小网站架构优化-提升抗并发能力:子应用程序分离方案
查看>>
澳大利亚初创公司SalesPreso获得200万美元种子投资
查看>>
运营商的“大网”怎么建? 三大运营商纷纷SDN/NFV三步走
查看>>
通辽智慧城市建设总体规划和顶层设计专家评审会召开
查看>>
未来营销闯关标配:大数据+智能硬件
查看>>
互动性可视化,打通大数据最后一公里
查看>>
为什么媒体如此惧怕 Facebook?
查看>>
我眼中的性能测试工程师
查看>>
台积电与ARM合作开发7纳米芯片 或用于iPhone 8
查看>>
大数据窥探:关于大数据的15条干货思考
查看>>
随谈10年的技术生涯和技术成长
查看>>
《交互式程序设计 第2版》一1.1 本书读者对象
查看>>
各省光伏十三五规划汇总:总规模将超130GW
查看>>
《大数据时代》作者:当下数据隐私保护方式是完全错误的
查看>>
光伏亟待资本注入 业界呼吁第三方“风险评级”
查看>>