Пользовательская аннотация Java, которая вызывает REST API

Я хотел бы создать аннотацию Java @Ping которая отправляет запрос POST API REST, который я развернул в контейнере Docker.

Пока что я создал эту аннотацию:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Ping {
    String endpoint();
}

Как видите, я бы хотел, чтобы эта аннотация основывалась на методах. Этот метод позволит мне присвоить статус (доступный или недоступный) другим моим службам.

Я также хотел бы сохранить этот код в качестве артефакта Maven в своем собственном репо, где я добавлю еще пару аннотаций, чтобы я мог использовать его в других своих службах.

Я видел пару обучающих программ, но не мог понять, как вывести это поведение из себя, и я все равно не мог заставить это работать.

Из того, что я понимаю, теперь мне нужен обработчик, который содержит логику (то есть отправляет запрос POST в мой API), но я не уверен, как это сделать. Есть ли шанс, что вы можете помочь мне начать это? Является ли аннотация хорошей идеей сделать что-то подобное?

Благодарность!

Всего 1 ответ


Создайте аннотацию уровня метода и используйте AOP, чтобы написать логику, которая будет вызывать ваши остальные API.

@Around("execution(@Ping * *(..))")
public void entr(ProceedingJoinPoint joinPoint) throws Throwable {
 System.out.println("before method");
 joinPoint.proceed();
 System.out.println("after method");
}

Есть идеи?

10000