iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >Springboot应用到底启动了哪些bean
  • 758
分享到

Springboot应用到底启动了哪些bean

2024-04-02 19:04:59 758人浏览 八月长安
摘要

本篇文章为大家展示了SpringBoot应用到底启动了哪些bean,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 概述我们将探索在

本篇文章为大家展示了SpringBoot应用到底启动了哪些bean,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

1. 概述

我们将探索在容器中获取所有spring管理的bean的相关技术。这有神马用?主要是用于排查问题。一般都是我们创建的某一个bean没有启动的问题。毕竟工作中总是会遇到各种各样的bug。提前了解一些没有坏处。

2. IoC容器

bean是spring管理的应用程序的基础,所有bean都驻留在ioc容器中,该容器负责管理它们的生命周期。

我们可以通过两种方式获取该容器内所有bean的列表:

  • 使用ListableBeanFactory接口

  • 使用Spring Boot Actuator

3.使用ListableBeanFactory接口

ListableBeanFactory接口提供了getBeanDefinitionNames()方法,该方法返回在这个工厂中定义的所有bean的名称。您可以在官方文档中找到所有已知子接口及其实现类的列表。我们来看这种方式如何获取所有的bean。

第一步:创建一个Controller

@Controller public class FooController {     @Autowired     private FooService fooService;     @RequestMapping(value="/displayallbeans")     public String getHeaderAndBody(Map model){         model.put("header", fooService.getHeader());         model.put("message", fooService.getBody());         return "displayallbeans";     } }

这个Controller依赖于另一个FooService。

第二步:创建Service

@Service public class FooService {     public String getHeader() {         return "Display All Beans";     }     public String getBody() {         return "展示所有beans的案例";     } }

注意,我们在这里创建了两个不同的bean:

  • fooController

  • fooService

这里使用applicationContext对象并调用它的getBeanDefinitionNames()方法,该方法将返回applicationContext容器中的所有bean:

第三步:设置SpringBootApplication启动类

@SpringBootApplication public class DemoApplication {     private static ApplicationContext applicationContext;     public static void main(String[] args) {         applicationContext = SpringApplication.run(DemoApplication.class, args);         displayAllBeans();     }     public static void displayAllBeans() {         String[] allBeanNames = applicationContext.getBeanDefinitionNames();         for(String beanName : allBeanNames) {             System.out.println(beanName);         }     } }

第四步:测试打印

这将打印applicationContext容器中的所有bean:

Springboot应用到底启动了哪些bean

注意,除了我们定义的bean之外,它还将记录该容器中的所有其他bean。为了清楚起见,我们在这里省略了它们,因为它们有很多。

4. 使用Spring Boot Actuator

Spring Boot Actuator提供了用于监控应用程序统计信息的端点。下面看看这种方式:

第一步:添加依赖

<dependency>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-starter-actuator</artifactId> </dependency>

第二步:修改application.properties

management.endpoints.WEB.exposure.include=*

把上面代码添加到properties文件中。

第三步:使用发布端点查看

Springboot应用到底启动了哪些bean

由于这里的Actuator没有配置,所以显示的比较乱。

上述内容就是Springboot应用到底启动了哪些bean,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网VUE频道。

--结束END--

本文标题: Springboot应用到底启动了哪些bean

本文链接: https://www.lsjlt.com/news/82079.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作