我想做一个REST API调用,作为自定义注解的一部分,返回一个布尔值。
示例代码。
**@CustomAnnotation
public String myMethod(){
// my implementation
}**
只有当REST调用的布尔值为真时,方法 "myMethod "才会被触发,并执行,否则会抛出一个类似于@NotNull的异常,我想知道这是否可行,如果可以,请有人帮助我。
你可以创建一个简单的自定义注解,而不用担心代码调用 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();
}
}