@RestControllerEndpoint endpointsインタフェースの追加

2052 ワード

@RestControllerEndpointはSpring boot 2.x新しく追加された注釈ですが、本質的には@Endpoint,@WebEndpointの役割と同じで、サービスにactuatorインタフェースを追加し、実行中のサービスを管理しやすいようにしています.しかし明らかな違いは,@RestControllerEndpointはHttp方式のアクセスのみをサポートし,JMXのアクセスはサポートしないことである.また,端点のアプローチは@GetMapping,@PostMapping,@DeleteMapping,@RequestMappingなどのみサポートされており,@ReadOperation,@WriteOperation,@DeleteOperationはサポートされていない.また、アプリケーション/jsonというフォーマットが返されます.次にその使い方を例として説明します.この例のコードバージョン:@RestControllerEndpoint 添加endpoints接口_第1张图片
まず、次のようにコントロールを作成します.
@Component
@RestControllerEndpoint(id = "user")
public class UserEndpointController {
	@GetMapping("getUser")
	public String getUser() {
		return "I am admin";
	}
}

ここで注意すべき点は、@RestControllerEndpointにはbeanの初期化が含まれていないため、@Componentまたはカスタム初期化beanのconfigを追加する必要があります.次に、endpointが有効な構成を追加します.
server:
  port: 9002
management:
  endpoints:
    web:
      exposure:
        include:
        - user

デフォルトでは、すべてのendpointsはオフの状態です.ここでは、以前に追加した@RestControllerEndpointのidであるuserを開くendpointを指定します.次のように入力します.http://localhost:9002/actuator/user/getUserアクセスできます.ここで、endpointのインタフェースのデフォルトのベースパスはactuatorであるため、パスにアクセスする前にこのパスを追加する必要があります.また、このベースパスを構成することで変更することもできます.
management:
  endpoints:
    web:
      exposure:
        include:
        - user
      base-path: /admin

base-pathは/で始まる必要があります.次のように入力できます.http://localhost:9002/admin/user/getUserにアクセスします.@RestControllerEndpoint 添加endpoints接口_第2张图片