成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

你的Springboot應用到底啟動了哪些bean?這兩種方式可以幫你獲取

開發 前端
在本文中,我們將探索在容器中獲取所有spring管理的bean的相關技術。這有神馬用?主要是用于排查問題。一般都是我們創建的某一個bean沒有啟動的問題。畢竟工作中總是會遇到各種各樣的bug。提前了解一些沒有壞處。

[[374511]]

1. 概述

在本文中,我們將探索在容器中獲取所有spring管理的bean的相關技術。這有神馬用?主要是用于排查問題。一般都是我們創建的某一個bean沒有啟動的問題。畢竟工作中總是會遇到各種各樣的bug。提前了解一些沒有壞處。

2. IoC容器

bean是spring管理的應用程序的基礎,所有bean都駐留在IOC容器中,該容器負責管理它們的生命周期。

我們可以通過兩種方式獲取該容器內所有bean的列表:

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

3.使用ListableBeanFactory接口

ListableBeanFactory接口提供了getBeanDefinitionNames()方法,該方法返回在這個工廠中定義的所有bean的名稱。您可以在官方文檔中找到所有已知子接口及其實現類的列表。我們來看這種方式如何獲取所有的bean。

第一步:創建一個Controller

  1. @Controller 
  2. public class FooController { 
  3.     @Autowired 
  4.     private FooService fooService; 
  5.     @RequestMapping(value="/displayallbeans"
  6.     public String getHeaderAndBody(Map model){ 
  7.         model.put("header", fooService.getHeader()); 
  8.         model.put("message", fooService.getBody()); 
  9.         return "displayallbeans"
  10.     } 

這個Controller依賴于另一個FooService。

第二步:創建Service

  1. @Service 
  2. public class FooService { 
  3.     public String getHeader() { 
  4.         return "Display All Beans"
  5.     } 
  6.     public String getBody() { 
  7.         return "展示所有beans的案例"
  8.     } 

注意,我們在這里創建了兩個不同的bean:

  • fooController
  • fooService

這里使用applicationContext對象并調用它的getBeanDefinitionNames()方法,該方法將返回applicationContext容器中的所有bean:

第三步:設置SpringBootApplication啟動類

  1. @SpringBootApplication 
  2. public class DemoApplication { 
  3.     private static ApplicationContext applicationContext; 
  4.     public static void main(String[] args) { 
  5.         applicationContext = SpringApplication.run(DemoApplication.class, args); 
  6.         displayAllBeans(); 
  7.     } 
  8.     public static void displayAllBeans() { 
  9.         String[] allBeanNames = applicationContext.getBeanDefinitionNames(); 
  10.         for(String beanName : allBeanNames) { 
  11.             System.out.println(beanName); 
  12.         } 
  13.     } 

第四步:測試打印

這將打印applicationContext容器中的所有bean:

注意,除了我們定義的bean之外,它還將記錄該容器中的所有其他bean。為了清楚起見,我們在這里省略了它們,因為它們有很多。

4. 使用Spring Boot Actuator

Spring Boot Actuator提供了用于監控應用程序統計信息的端點。下面看看這種方式:

第一步:添加依賴

  1. <dependency> 
  2.     <groupId>org.springframework.boot</groupId> 
  3.     <artifactId>spring-boot-starter-actuator</artifactId> 
  4. </dependency> 

第二步:修改application.properties

  1. management.endpoints.web.exposure.include=* 

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

第三步:使用發布端點查看

由于這里的Actuator沒有配置,所以顯示的比較亂。關于Actuator的配置,會在下一篇文章中呈現。

5. 結論

在本文中,我們了解了如何使用ListableBeanFactory接口和Spring Boot Actuator在Spring IoC容器中顯示所有bean。希望對你有點幫助。

本文轉載自微信公眾號「愚公要移山」,可以通過以下二維碼關注。轉載本文請聯系愚公要移山公眾號。

 

責任編輯:武曉燕 來源: 愚公要移山
相關推薦

2025-01-16 08:38:34

2017-09-25 15:49:01

2011-03-03 10:26:04

Pureftpd

2016-11-07 09:02:02

Malloc內存syscall

2021-11-12 14:10:53

IT大數據大數據應用

2013-01-18 11:28:27

應用推廣

2018-02-05 00:02:48

WANSDN網絡

2019-01-15 18:20:57

2022-01-26 00:36:24

vue組件化通信

2009-11-06 12:59:56

WCF服務通信

2023-11-06 08:20:35

Kubernetesnginx

2010-03-16 15:38:57

Python串口

2010-03-16 15:38:57

Python串口

2021-05-27 10:57:01

TCP定時器網絡協議

2021-06-30 07:19:34

SpringBoot定時任務

2009-06-25 13:43:00

Buffalo AJA

2010-10-21 16:24:18

sql server升

2010-08-06 09:38:11

Flex讀取XML

2023-03-29 13:06:36

2020-07-13 07:45:52

編程語言C語言Java
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线播放国产视频 | 国产一区二区在线免费观看 | 亚洲电影免费 | 久久99精品久久久久久国产越南 | 久操av在线| 久热国产在线 | 黑人巨大精品欧美一区二区免费 | 天天干狠狠干 | 欧美日韩成人在线观看 | 天堂影院av| 97久久久久久 | 日韩在线观看中文字幕 | 日韩性在线 | 国内精品久久久久久影视8 最新黄色在线观看 | 国产精品一区在线观看 | 国产欧美久久一区二区三区 | 天天射影院 | 中文字幕人成乱码在线观看 | 久草免费在线视频 | 91精品国产一二三 | 超碰97免费在线 | 三级免费毛片 | 草草视频在线免费观看 | 日韩中文一区二区 | 亚洲国产一区二区三区在线观看 | 国产综合第一页 | 成年人网站在线观看视频 | 成人精品鲁一区一区二区 | 色综合桃花网 | 国产91网站在线观看 | 国产精品久久二区 | 日韩精品免费视频 | 欧美一区二区三区在线观看 | 久久在线视频 | 国产又色又爽又黄又免费 | 国产激情在线 | 巨大黑人极品videos精品 | 蜜桃精品视频在线 | 天堂一区在线观看 | 日韩av中文| 国产激情片在线观看 |