官术网_书友最值得收藏!

Creating a custom endpoint

We have seen that the Actuator provides several endpoints for your application. But Spring Boot's Actuator also allows you to create a custom endpoint by implementing the EndPoint interface. Let's see the following example:

package com.dineshonjava.sba;

import java.util.ArrayList;
import java.util.List;

import org.springframework.boot.actuate.endpoint.Endpoint;
import org.springframework.stereotype.Component;
@Component
public class MyCustomEndpoint implements Endpoint<List<String>>{

   @Override
   public String getId() {
         return "myCustomEndpoint";
   }

   @Override
   public List<String> invoke() {
         // Custom logic to build the output
        List<String> list = new ArrayList<>();
        list.add("App message 1");
        list.add("App message 2");
        list.add("App message 3");
        list.add("App message 4");
        return list;
   }
   @Override
   public boolean isEnabled() {
         return true;
   }

   @Override
   public boolean isSensitive() {
         return true;
   }
}  

As you can see, the MyCustomEndpoint class implemented the EndPoint interface and it overrode four methods, getId(), invoke(), isSensitive(), and isEnabled(). The getId() method returns endpoint ID or name, and by using it you can access /myCustomEndpoint for now. Let's see what the following response returns:

[
"App message 1",
"App message 2",
"App message 3",
"App message 4"
]

The invoke() method returns an application message—whatever you want to expose from this custom endpoint. The isEnabled() and isSensitive() methods are used for enabling this endpoint for your application and setting the sensitivity of this endpoint respectively.

There are many more ways of customizing Spring Boot's Actuator. Spring Boot allows us to customize all of the Actuator. That is why Spring Boot is opinionated.

Many of the Actuator endpoints expose sensitive data, so you have to protect these endpoints from any unwanted activity. Spring Boot allows you to secure these Actuator endpoints. In the next section, let's see how to make these Actuator endpoints secure.

主站蜘蛛池模板: 诸暨市| 新和县| 高州市| 固安县| 霍州市| 绥滨县| 盘山县| 夏邑县| 宝坻区| 乐山市| 方山县| 天水市| 十堰市| 乡宁县| 金阳县| 朝阳区| 灌云县| 宣化县| 广水市| 临潭县| 深泽县| 卫辉市| 洪江市| 建始县| 衡东县| 马尔康县| 米泉市| 轮台县| 民乐县| 铜鼓县| 乌鲁木齐市| 元氏县| 河南省| 舟山市| 延川县| 绥芬河市| 乐陵市| 大宁县| 丰城市| 河北省| 马边|