如何在自定义注解中进行REST API调用?

问题描述 投票:0回答:1

我想做一个REST API调用,作为自定义注解的一部分,返回一个布尔值。

示例代码。

**@CustomAnnotation
public String myMethod(){
 // my implementation
}**

只有当REST调用的布尔值为真时,方法 "myMethod "才会被触发,并执行,否则会抛出一个类似于@NotNull的异常,我想知道这是否可行,如果可以,请有人帮助我。

java rest annotations
1个回答
0
投票

你可以创建一个简单的自定义注解,而不用担心代码调用 rest.对于执行 rest 调用代码 ->

阅读关于如何应用面向方面的编程。

基本上使用aop(面向方面的编程),你可以写一个代码,这样对于任何用你的自定义注解注释的方法。在调用方法之前,你希望执行一些代码。.

在春季进行

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@interface CustomAnnotation {
    String value() default "";
}

@Pointcut(value = "@annotation(CustomAnnotation)")  // full path to CustomAnnotation class
public void abc() {
}

@Around("abc()")
public Object executeSomePieceOfCode(ProceedingJoinPoint joinPoint) throws Throwable {

        System.out.println("this executes before calling method");

        // YOUR CODE TO CALL REST API
        boolean responseFromRestCall = true;  // this flag is set based on response from rest call

        if(responseFromRestCall) {
            // this excutes your method
            Object obj = joinPoint.proceed();
            MethodSignature signature = (MethodSignature) joinPoint.getSignature();
            Method method = signature.getMethod();

            CustomAnnotation myAnnotation = method.getAnnotation(CustomAnnotation.class);
            String value = myAnnotation.value();
            System.out.println("value : + " + value);
            return obj;
        } else {
            // currently throwing RuntimeException. You can throw any other custom exception.
            throw new RuntimeException();
        }

}
© www.soinside.com 2019 - 2024. All rights reserved.