概述
springMVC中增加spring-boot-actuator
- MVC版本说明
- actuator相关的版本
- 第一步
- 第二步
- 第三步
- 第四部
- 最后说几句
由于项目上需要,要在MVC的框架程序上增加actuator,网上大部分都是boot下的添加方式,最终只在csdn中找到三篇相关的内容,但是涉及到的版本适配上还是有一些问题,这里整理了一下相关的内容做一次记录。
MVC版本说明
使用的mvc版本:spring-webmvc-4.3.12.RELEASE
actuator相关的版本
spring-boot-actuator:1.4.3.RELEASE
hibernate-validator:5.1.2.Final
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator</artifactId>
<version>1.4.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.2.Final</version>
</dependency>
第一步
pom中添加上面actuator的两个依赖包
第二步
增加一个配置类,这里需要注意必须将类放到扫描的范围内,可以和其他比如容器初始化类,swagger初始化类放到一起,这里参考了另外几位大佬的代码。
import java.util.Collection;
import org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.HealthIndicatorAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.PublicMetricsAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.TraceRepositoryAutoConfiguration;
import org.springframework.boot.actuate.endpoint.BeansEndpoint;
import org.springframework.boot.actuate.endpoint.DumpEndpoint;
import org.springframework.boot.actuate.endpoint.EnvironmentEndpoint;
import org.springframework.boot.actuate.endpoint.HealthEndpoint;
import org.springframework.boot.actuate.endpoint.InfoEndpoint;
import org.springframework.boot.actuate.endpoint.MetricsEndpoint;
import org.springframework.boot.actuate.endpoint.RequestMappingEndpoint;
import org.springframework.boot.actuate.endpoint.ShutdownEndpoint;
import org.springframework.boot.actuate.endpoint.TraceEndpoint;
import org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerMapping;
import org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter;
import org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint;
import org.springframework.boot.actuate.endpoint.mvc.MvcEndpoint;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.web.context.support.StandardServletEnvironment;
@Configuration
@Import({EndpointAutoConfiguration.class,
PublicMetricsAutoConfiguration.class,
HealthIndicatorAutoConfiguration.class,
TraceRepositoryAutoConfiguration.class})
public class ActuatorSpringConfig {
@Bean
public EndpointHandlerMapping endpointHandlerMapping(
Collection<? extends MvcEndpoint> endpoints) {
EndpointHandlerMapping mapping = new EndpointHandlerMapping(endpoints);
return mapping;
}
@Bean
public HealthMvcEndpoint healthMvcEndpoint(HealthEndpoint delegate) {
return new HealthMvcEndpoint(delegate, false);
}
@Bean
public EndpointMvcAdapter metricsEndPoint(MetricsEndpoint delegate) {
return new EndpointMvcAdapter(delegate);
}
@Bean
public EndpointMvcAdapter infoEndPoint(InfoEndpoint delegate) {
return new EndpointMvcAdapter(delegate);
}
@Bean
public EndpointMvcAdapter traceEndPoint(TraceEndpoint delegate) {
return new EndpointMvcAdapter(delegate);
}
@Bean
public EndpointMvcAdapter dumpEndpoint() {
return new EndpointMvcAdapter(new DumpEndpoint());
}
@Bean
public EndpointMvcAdapter environmentEndpoint(StandardServletEnvironment environment) {
EnvironmentEndpoint environmentEndpoint = new EnvironmentEndpoint();
environmentEndpoint.setEnvironment(environment);
return new EndpointMvcAdapter(environmentEndpoint);
}
@Bean
public EndpointMvcAdapter beansEndpoint(ApplicationContext context) {
BeansEndpoint endpoint = new BeansEndpoint();
endpoint.setApplicationContext(context);
return new EndpointMvcAdapter(endpoint);
}
@Bean
public EndpointMvcAdapter requestMappingEndpoint(ApplicationContext context) {
RequestMappingEndpoint requestMappingEndpoint = new RequestMappingEndpoint();
requestMappingEndpoint.setApplicationContext(context);
return new EndpointMvcAdapter(requestMappingEndpoint);
}
@Bean
public EndpointMvcAdapter shutdownEndpoint(ApplicationContext context) {
ShutdownEndpoint shutdownEndpoint = new ShutdownEndpoint();
shutdownEndpoint.setApplicationContext(context);
shutdownEndpoint.setEnabled(true);
return new EndpointMvcAdapter(shutdownEndpoint);
}
}
第三步
访问地址
http://ip:port/项目名/health
http://ip:port/项目名/dump
actuator请求返回的json数据,具体请求如下:
图片是复制自另外一名博主的介绍内容
详细介绍请参考: http://blog.csdn.net/u011851478/article/details/55046918 顺便感谢博主的图片
第四部
确认一下请求的时候日志中是否有内存不够的报错
The background cache eviction process was unable to free [10] percent of the cache for Context
如果有请修改tomcat的context.xml配置文件
<Resources cachingAllowed="true" cacheMaxSize="100000" />
最后说几句
引入的jar版本可能会和现有的一些包出现冲突,建议多试几个版本,根据启动的日志调整对应架包的版本,hibernate-validator的包就从4.3的版本跳到5.1.2才兼容的
最后
以上就是轻松火车为你收集整理的springMVC中增加spring-boot-actuator的全部内容,希望文章能够帮你解决springMVC中增加spring-boot-actuator所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复