我是靠谱客的博主 轻松火车,这篇文章主要介绍springMVC中增加spring-boot-actuator,现在分享给大家,希望可以做个参考。

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

复制代码
1
2
3
4
5
6
7
8
9
10
11
<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初始化类放到一起,这里参考了另外几位大佬的代码。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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 顺便感谢博主的图片

第四部

确认一下请求的时候日志中是否有内存不够的报错

复制代码
1
2
The background cache eviction process was unable to free [10] percent of the cache for Context

如果有请修改tomcat的context.xml配置文件

复制代码
1
2
<Resources cachingAllowed="true" cacheMaxSize="100000" />

最后说几句

引入的jar版本可能会和现有的一些包出现冲突,建议多试几个版本,根据启动的日志调整对应架包的版本,hibernate-validator的包就从4.3的版本跳到5.1.2才兼容的

最后

以上就是轻松火车最近收集整理的关于springMVC中增加spring-boot-actuator的全部内容,更多相关springMVC中增加spring-boot-actuator内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部