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 的获取。
完整步骤如下:
- 创建 SpringBoot 项目,并创建
UserController
,代码通过/displayallbeans
接口打印所有 bean 的信息。 - 创建启动类
DisplayAllbeansApplication
并运行项目。 - 启动项目后访问
http://localhost:8080/displayallbeans
,控制台会打印 IoC 容器中所有 bean 的信息。
需要注意的是,该方法可以获取所有 bean,包括框架自带的 bean,而截图中展示的是自定义的 bean。
3. 使用 Spring Boot Actuator
Spring Boot Actuator 提供了用于监控应用程序统计信息的端点,可以用来查看 IoC 容器中的所有 bean。
步骤如下:
- 在
pom.xml
文件中添加 Actuator 依赖: - 在
application.yml
文件中添加配置,允许开放所有端点: - 访问
http://localhost:8080/actuator/beans
查看 IoC 容器中的所有 bean。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
management:
endpoints:
web:
exposure:
include: '*'
注意:输出结果可以通过安装 JSON 插件(如 JSON-handle)优化显示。
总结
本文介绍了在 Spring IoC 容器中获取 bean 的两种方法:使用 ListableBeanFactory
接口和 Spring Boot Actuator。开发者可根据具体场景选择合适的方法。
如果文章对您有帮助,欢迎点赞、收藏或转发支持!
想要了解更多内容?



白皮书上线