使用Spring Boot Actuator的一些坑
2019-03-19 本文已影响0人
qiyinger
1、应用启动时报数据源加载循环引用的错
image.png
2019-03-19 15:37:26,501 main WARN (Jdk14Logger.java)- Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'syncUserBalacneServiceImpl': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'balanceService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'balanceMapper' defined in file [/Users/qiying/Documents/projects/java/yunpian-attila-account-service/yunpian-attila-account-service-impl/target/classes/com/yunpian/attila/account/spring/cloud/application/mapper/BalanceMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource': Post-processing of FactoryBean's singleton object failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.jdbc.DataSourceInitializerInvoker': Invocation of init method failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource': Post-processing of FactoryBean's singleton object failed; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'scopedTarget.dataSource': Requested bean is currently in creation: Is there an unresolvable circular reference?
解决:在yml文件中添加配置
spring:
cloud:
refresh:
refreshable: none
2、想通过actuator的shutdown来停止应用,按照网上的配置endpoints.shutdown.enabled=true
配置之后请求/shutdown 报404的错。查阅文档https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html#production-ready-endpoints-exposing-endpoints 除了info和health端点,其他端点Actuator对web请求是默认不暴露的,所以需要手动配置
management:
endpoints:
web:
exposure:
# 暴露的端点
include: shutdown
endpoint:
#开启shutdown
shutdown:
enabled: true
然后访问/shutdown就可以成功停止应用了