真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Springboot應(yīng)用到底啟動(dòng)了哪些bean

本篇文章為大家展示了Springboot應(yīng)用到底啟動(dòng)了哪些bean,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)建站長期為近1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為洛陽企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),洛陽網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

1. 概述

我們將探索在容器中獲取所有spring管理的bean的相關(guān)技術(shù)。這有神馬用?主要是用于排查問題。一般都是我們創(chuàng)建的某一個(gè)bean沒有啟動(dòng)的問題。畢竟工作中總是會遇到各種各樣的bug。提前了解一些沒有壞處。

2. IoC容器

bean是spring管理的應(yīng)用程序的基礎(chǔ),所有bean都駐留在IOC容器中,該容器負(fù)責(zé)管理它們的生命周期。

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

  • 使用ListableBeanFactory接口

  • 使用Spring Boot Actuator

3.使用ListableBeanFactory接口

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

第一步:創(chuàng)建一個(gè)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";     } }

這個(gè)Controller依賴于另一個(gè)FooService。

第二步:創(chuàng)建Service

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

注意,我們在這里創(chuàng)建了兩個(gè)不同的bean:

  • fooController

  • fooService

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

第三步:設(shè)置SpringBootApplication啟動(dòng)類

@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應(yīng)用到底啟動(dòng)了哪些bean

注意,除了我們定義的bean之外,它還將記錄該容器中的所有其他bean。為了清楚起見,我們在這里省略了它們,因?yàn)樗鼈冇泻芏唷?/p>

4. 使用Spring Boot Actuator

Spring Boot Actuator提供了用于監(jiān)控應(yīng)用程序統(tǒng)計(jì)信息的端點(diǎn)。下面看看這種方式:

第一步:添加依賴

     org.springframework.boot     spring-boot-starter-actuator 

第二步:修改application.properties

management.endpoints.web.exposure.include=*

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

第三步:使用發(fā)布端點(diǎn)查看

Springboot應(yīng)用到底啟動(dòng)了哪些bean

由于這里的Actuator沒有配置,所以顯示的比較亂。

上述內(nèi)容就是Springboot應(yīng)用到底啟動(dòng)了哪些bean,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


本文標(biāo)題:Springboot應(yīng)用到底啟動(dòng)了哪些bean
文章出自:http://weahome.cn/article/ighcjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部