扫码阅读
手机扫码阅读

SpringBoot中如何查看程序有哪些bean?

612 2024-07-18

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:SpringBoot中如何查看程序有哪些bean?
文章来源:
springboot葵花宝典
扫码关注公众号
SpringBoot中如何查看程序有哪些bean? - 摘要

SpringBoot中如何查看程序有哪些bean? - 摘要

简介

在 Spring 中,bean 是构成应用程序主干并由 IoC 容器管理的对象。了解如何获取和启动 bean 对于解决问题和排查 bug 至关重要。本文介绍了在 Spring IoC 容器中获取 bean 的两种方法,预计阅读时间约为 7 分钟。

1. IOC容器

Bean 是 Spring 管理应用的基础,所有的 bean 都存储在 IoC 容器中。容器负责管理它们的生命周期。获取 IoC 容器中所有 bean 的方法有两种:

  • 使用 ListableBeanFactory 接口
  • 使用 Spring Boot Actuator

2. 使用 ListableBeanFactory 接口获取 bean

ListableBeanFactory 接口提供了 getBeanDefinitionNames() 方法,可以返回容器中所有 bean 的名称。通过继承该接口的 ApplicationContext,可以实现 bean 的获取。

完整步骤如下:

  1. 创建 SpringBoot 项目,并创建 UserController,代码通过 /displayallbeans 接口打印所有 bean 的信息。
  2. 创建启动类 DisplayAllbeansApplication 并运行项目。
  3. 启动项目后访问 http://localhost:8080/displayallbeans,控制台会打印 IoC 容器中所有 bean 的信息。

需要注意的是,该方法可以获取所有 bean,包括框架自带的 bean,而截图中展示的是自定义的 bean。

3. 使用 Spring Boot Actuator

Spring Boot Actuator 提供了用于监控应用程序统计信息的端点,可以用来查看 IoC 容器中的所有 bean。

步骤如下:

  1. pom.xml 文件中添加 Actuator 依赖:
  2. <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
  3. application.yml 文件中添加配置,允许开放所有端点:
  4. management:
      endpoints:
        web:
          exposure:
            include: '*'
  5. 访问 http://localhost:8080/actuator/beans 查看 IoC 容器中的所有 bean。

注意:输出结果可以通过安装 JSON 插件(如 JSON-handle)优化显示。

总结

本文介绍了在 Spring IoC 容器中获取 bean 的两种方法:使用 ListableBeanFactory 接口和 Spring Boot Actuator。开发者可根据具体场景选择合适的方法。

如果文章对您有帮助,欢迎点赞、收藏或转发支持!

想要了解更多内容?

查看原文:SpringBoot中如何查看程序有哪些bean?
文章来源:
springboot葵花宝典
扫码关注公众号