Spring Boot Actuator是Spring的一个子项目。它可以不费吹灰之力为您的应用程序添加了几个生产级服务,通过restful api请求来监管、审计、收集应用、查看运行状态,在线重启,关闭服务,针对微服务而言它是必不可少的一个环节。在本指南中,您将构建一个应用程序,然后了解如何添加这些服务。
我利用业余时间,翻译了Spring官网的例子,方便中文不好的同学,将陆续发到头条上,欢迎大家关注,也可以上我个人BLOG:itmanclub.com,上面有已经翻译过的。
本指南将引导您创建一个带有 Spring Boot Actuator的“hello world” RESTful Web服务。您将构建一个接受HTTP GET请求的服务:
$ curl http://localhost:9000/hello-world
返加如下的JSON:
{"id":1,"content":"Hello, World!"}
还有许多现成的特性添加到应用程序中,用于在生产(或其他)环境中管理服务,您所构建的服务的业务功能与构建RESTful Web服务相同,只是增加监控功能等。
程序结构
└── src └── main └── java └── hello
pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>4.0.0org.springframework gs-actuator-service 0.1.0org.springframework.boot spring-boot-starter-parent 2.1.6.RELEASEorg.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-actuator org.springframework.boot spring-boot-starter-test test1.8org.springframework.boot spring-boot-maven-plugin
Spring Boot将会你做如下的事:
- 将 classpath 里面所有用到的jar包构建成一个可执行的 JAR 文件,方便执行你的程序
- 搜索public static void main()方法并且将它当作可执行类
- 根据springboot版本,去查找相应的依赖类版本,当然你可以定义其它版本。
创建一个空的服务
首先,这里是一个空的SpringMVC应用程序。
src/main/java/hello/HelloWorldApplication.java
package hello;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class HelloWorldApplication { public static void main(String[] args) { SpringApplication.run(HelloWorldApplication.class, args); }}
@SpringBootApplication 注释根据类路径的内容和其他内容提供了一批默认值(如嵌入式servlet容器)。它还打开SpringMVC的@EnableWebMVC注释,激活Web端点。
这个应用程序中没有定义任何端点,但是有足够的端点来启动并查看 Actuator的一些特性。run()命令知道如何启动Web应用程序。
运行你的程序(STS下,IDEA可参考前面文章) 右键-选择Run as-Spring Boot App:
你几乎还没有写任何代码,那么发生了什么?
如果你访问 http://localhost:8080/, 会看到界面如下:
$ curl localhost:8080{"timestamp":1384788106983,"error":"Not Found