摘要:在生產(chǎn)環(huán)境中,需要實時或定期監(jiān)控服務(wù)的可用性弄喘。Actuator功能提供了很多監(jiān)控所需要的接口摧扇;是spring boot應(yīng)用系統(tǒng)的自省和監(jiān)控的集成功能,可以對應(yīng)用系統(tǒng)進(jìn)行配置查看殴泰、相關(guān)功能統(tǒng)計∮谥妫現(xiàn)在主要介紹通過端點查看配置明細(xì)浮驳。
開啟Actuator
? ? ? ?要啟用Actuator的端點悍汛,只需要在項目中引入Actuator的起步依賴即可。在Gradle構(gòu)建說明文件里即build.gradle至会,這個依賴是這樣的:
compile('org.springframework.boot:spring-boot-starter-actuator')
在應(yīng)用程序運行時自動配置都會生效离咐。
一、Actuator的端點
1.1.查看配置明細(xì)(/beans)
? ? ? ?獲取Bean裝配報告,使用端點/beans宵蛀,可以了解應(yīng)用程序中spring上下文的情況昆著。該路勁返回一個JSON文檔,描述上下文里每個Bean的情況术陶,包括其Java類型以及注入的其他Bean凑懂。(運行項目后,輸入http://localhost:8080/beans即可查看運行結(jié)果梧宫。)示例如下:
bean:Spring應(yīng)用程序上下文中的Bean名稱或ID接谨。
resource:.class文件的物理位置,通常是一個URL塘匣,指向構(gòu)建出的JAR文件脓豪。這會隨著應(yīng)用程序的構(gòu)建和運行方式發(fā)生變化。dependencies:當(dāng)前Bean注入的Bean ID列表忌卤。
scope:Bean的作用域(通常是單例扫夜,這也是默認(rèn)作用域) 。
type:Bean的Java類型驰徊。
1.1.1自動配置(/autoconfig)
? ? ? ? ? 運行項目后笤闯,輸入http://localhost:8080/autoconfig。示例如下
? ? ? ? 在positiveMatches里辣垒,你會看到一個條件望侈,決定Spring Boot是否自動配置JdbcTemplateBean。匹配到的名字是DataSourceAutoConfiguration.JdbcTemplateConfiguration#jdbcTemplate勋桶,這是運用了條件的具體配置類脱衙。條件類型是OnBeanCondition,意味著條件的輸出是由某個Bean的存在與否來決定的例驹。在本例中捐韩,message屬性已經(jīng)清晰地表明了該條件是檢查是否有JdbcOperations類型(JbdcTemplate實現(xiàn)了該接口)的Bean存在。如果沒有配置這種Bean鹃锈,則條件成立荤胁,創(chuàng)建一個JdbcTemplate Bean。
? ? ? ? 在negativeMatches里屎债,有一個條件決定了是否要配置ActiveMQ仅政。這是一個OnClassCondition,會檢查Classpath里是否存在ActiveMQConnectionFactory盆驹。因為Classpath里沒有這個類圆丹,條件不成立,所以不會自動配置ActiveMQ躯喇。
1.1.2查看配置屬性(/env)
? ? ? ? ?/env端點會生成應(yīng)用程序可用的所有環(huán)境屬性的列表辫封,無論這些屬性是否用到硝枉。這其中包括環(huán)境變量、JVM屬性倦微、命令行參數(shù)妻味,以及applicaition.properties文件提供的屬性.
運行項目后,輸入http://localhost:8080/env欣福。示例如下:
? ? ? ? 任何能給spring boot應(yīng)用程序提供屬性的屬性源都會列在/evn的結(jié)果里责球。/env端點還能用來獲取單個屬性的值,只需要在請求時在/env后面加上屬性名即可拓劝。
1.1.3生成端點到控制器的映射(/mappings)
? ? ? ? 每個映射的鍵都是一個字符串棕诵,其內(nèi)容就是Spring MVC的@RequestMapping注解上設(shè)置的屬性。實際上凿将,這個字符串能清晰地了解控制器是如何映射的.每個映射的值都有兩個屬性:bean和method校套。bean屬性標(biāo)識了Spring Bean的名字,映射源自這個Bean牧抵。method屬性是映射對應(yīng)方法的全限定方法簽名笛匙。
未完待續(xù)。犀变。妹孙。。获枝。蠢正。敬請期待!J〉辍嚣崭!