成人免费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

2013-01-18 11:28:27

應用推廣

2021-11-12 14:10:53

IT大數據大數據應用

2019-01-15 18:20:57

2018-02-05 00:02:48

WANSDN網絡

2022-01-26 00:36:24

vue組件化通信

2023-11-06 08:20:35

Kubernetesnginx

2009-11-06 12:59:56

WCF服務通信

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

2016-12-14 17:37:40

云盤
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 粉嫩一区二区三区性色av | 亚洲高清中文字幕 | 99re在线视频观看 | 日韩欧美电影在线 | 精品国产一级 | 一区二区三区网站 | 国产欧美一区二区三区日本久久久 | 久久久国产亚洲精品 | 精品久久久一区 | 久久久xx | 男女羞羞的网站 | 国产精品污www一区二区三区 | 一级黄色片在线免费观看 | 国产精品久久久久久av公交车 | 中文在线一区二区 | h视频在线观看免费 | 一区二区三区欧美 | 亚洲精品成人av久久 | 一区二区影院 | 91精品国产色综合久久 | 久久免费国产 | 九色视频网站 | 日韩中文字幕免费在线 | 国产日韩欧美中文字幕 | 欧美高清视频在线观看 | 日韩一区二区免费视频 | 精品国产乱码久久久久久果冻传媒 | av大片在线| 北条麻妃av一区二区三区 | 日韩国产精品一区二区三区 | 久久性色 | 国产精品自拍一区 | 91免费福利在线 | 99精品久久久久久久 | 成人免费看黄网站在线观看 | 国产黄色在线观看 | 免费视频二区 | 亚洲免费在线 | 二区成人 | 视频一区二区在线观看 | 精品中文字幕视频 |