java代码中如何打印出所有的SpringBean呢?

书欣 Spring 发布时间:2022-10-27 10:16:41 阅读数:5203 1
下文笔者讲述java代码中打印出所有SpringBean的方法分享,如下所示
实现思路:
     方式一:
	     实现Spring的ApplicationContextAware接口
         然后重写setApplicationContext方法
         得到的ApplicationContext对象保存到一个静态变量中
         此对象中就包含了所有的spring bean 

    方式二:
        调用applicationContext.getBeanDefinitionNames()方法
		  可获取Spring容器中所有Bean名称
例1:
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
 import org.springframework.stereotype.Component;
 
 /**
  * 打印Spring容器所有的Bean名称
  */
 @Component
 public class ApplicationContextBean implements ApplicationContextAware, InitializingBean {
 
     public static ApplicationContext applicationContext;
 
     /**
      * 获取 ApplicationContext
      *
      * @param applicationContext
      * @throws BeansException
      */
     @Override
     public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
         ApplicationContextBean.applicationContext = applicationContext;
     }
 
     /**
      * 打印IOC容器中所有的Bean名称
      * author:www.java265.com
      * @throws Exception
      */
     @Override
     public void afterPropertiesSet() throws Exception {
         String[] names = applicationContext.getBeanDefinitionNames();
         for (String name : names) {
             System.out.println("spring bean名称>>>>>>" + name);
         }
         System.out.println("------Bean 总计:" + applicationContext.getBeanDefinitionCount());
     }
 }
 

方式二:
直接使用@Autowired注入ApplicationContext对象
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationContext;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Arrays;
 import java.util.list;
 
 @RestController
 @RequestMapping
 public class BeanController {
 
     @Autowired
     private ApplicationContext applicationContext;
 
     @GetMapping("/beanList")
     public List<String> beanList() {
         return Arrays.asList(applicationContext.getBeanDefinitionNames());
     }
 }
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/Spring/202209/4541.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者