springboot2 actuator(二) conditions(原autoconfig)

说明

本编是学习actuator的第二篇, 逐步对actuator 的认识做一个记录分享.

主要对actuator中的conditions的一个认识.(基于第一篇执行)

springboot2前: 端点的自动化配置信息获取地址是 /autoconfig

官方改动说明: /autoconfig-->Renamed to /conditions

springboot2后: 获取地址 /actuator/conditions   

以上都是无自定义的默认访问.

        该端点用来获取应用的自动化配置, 其中包括所有自动化配置的候选项。同时还列出了每个候选项自动化配置的各个先决条件是否满足。该端点可以帮助我们方便的找到一些自动化配置为什么没有生效的具体原因.

------------------------------------------------------

访问

http://localhost:8081/actuator/conditions

获取的信息只展示部分,太长了,如下:

{
	contexts: {
		application: {
			positiveMatches: {
				PageHelperAutoConfiguration: [
					{
						condition: "OnBeanCondition",
						message: "@ConditionalOnBean (types: org.apache.ibatis.session.SqlSessionFactory; SearchStrategy: all) found beans 'sqlSessionFactorCat', 'sqlSessionFactorDog'"
					}
				]
			},
			negativeMatches: {
				ElasticsearchHealthIndicatorAutoConfiguration.ElasticsearchClientHealthIndicatorConfiguration: {
					notMatched: [
						{
							condition: "OnClassCondition",
							message: "@ConditionalOnClass did not find required class 'org.elasticsearch.client.Client'"
						}
					],
					matched: [ ]
				},
			},
			unconditionalClasses: [
				"org.springframework.boot.actuate.autoconfigure.management.HeapDumpWebEndpointAutoConfiguration"
			]
		}
	}
}

对于以上返回的信息, 参数说明:

contextsObjectApplication contexts keyed by id.
positiveMatchesObjectcondition匹配的类和方法.
conditionStringcondition名字.
messageStringcondition对应详细说明.
negativeMatchesObjectcondition不匹配的类和方法
notMatchedArrayconditions的条件.
matchedArrayconditions的条件.
unconditionalClassesArray无条件自动配置类的名称(如果有的话)

补充说明

记录关于@Condition* 的一系列注解, 标注在类或方法上面,表示@Bean会启用配置

引用巨人的解释: 

Spring框架还提供了很多@Condition给我们用,当然总结用语哪种好理解,看给位读者喽

@ConditionalOnBean(仅仅在当前上下文中存在某个对象时,才会实例化一个Bean)
@ConditionalOnClass(某个class位于类路径上,才会实例化一个Bean)
@ConditionalOnExpression(当表达式为true的时候,才会实例化一个Bean)
@ConditionalOnMissingBean(仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean)
@ConditionalOnMissingClass(某个class类路径上不存在的时候,才会实例化一个Bean)
@ConditionalOnNotWebApplication(不是web应用)

@ConditionalOnClass:该注解的参数对应的类必须存在,否则不解析该注解修饰的配置类;
@ConditionalOnMissingBean:该注解表示,如果存在它修饰的类的bean,则不需要再创建这个bean;可以给该注解传入参数例如@ConditionOnMissingBean(name = "example"),这个表示如果name为“example”的bean存在,这该注解修饰的代码块不执行。

 

官方actuator文档说明: https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/actuator-api/html/

--------------------------------------------------------

转载于:https://my.oschina.net/u/3829444/blog/1808068

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值