当前位置: 首页 > 知识库问答 >
问题:

如何在自定义注释内部进行Rest API调用?

祝高阳
2023-03-14

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

示例代码:

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

仅当来自 REST 调用的布尔值为 true 时,方法“myMethod 必须被触发,并且应该发生实现,否则将引发类似于 @NotNull 的异常。我想知道这是否可能,如果是,有人请帮助我。

共有1个答案

诸葛令
2023-03-14

您可以创建一个简单的定制注释,而不用担心调用rest的代码。用于执行rest调用代码-

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

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

在Spring这样做

@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();
        }

}
 类似资料:
  • 我们正在尝试在Spring中为我们的rest api创建一个自定义注释。我是创建自定义注释的新手,我已经给出了下面的代码片段 Spring Boot应用程序-- RestController- 自定义注释-- 注解处理器 方法回调-- 我试图处理自定义注释在一个类中实现BeanPost处理器,但我有一个问题 Issue_1:回调被调用一次,但是我不能对 /service/v1/version应用编

  • 在我的Spring Boot项目中,我创建了一个自定义注释,其中validator扩展了ConstraintValidator,以验证RequestBody中的一些字段。注释对于非嵌套字段可以很好地工作,但对于嵌套字段不调用验证器。 我的注释如下所示: 我的验证类: 它在这样的情况下工作正常: 但是当放在嵌套对象上时,不会调用验证器: 类在我的中的用法: 关于如何解决这个问题有什么想法吗?我已经尝

  • 我想用java为创建自定义注释。我想用这个注释比较两个字符串值,比较后会返回一个

  • 我有一个自定义注释,如下所示 我定义了一个方面来包装实际的方法调用 注释的用法如下所示 到目前为止,这工作得很好,我可以在TestableAspect#InvkeAndLog中实现我的登录。 现在我需要验证eg的索引值不大于10。 我可以在运行时通过更改方面实现来实现,如下所示 但这需要至少调用一次API,而且效率不高。是否有一种方法可以在spring启动应用程序启动时执行此操作?

  • 我有一个实体类称为和一个仓库声明如下: 自定义存储库的定义如下: 和 下面是另一个堆栈溢出问题中描述的内容:如何向Spring数据JPA添加自定义方法 现在,IntelliJ给了我一个警告: 我尝试将这些注释添加到中,但没有一个成功: 但都不管用。显然有些是错的,但我在试验。正确的注释是什么。 使用,我得到了以下错误:

  • 我在网上搜索了一个关于如何使用Spring AOP调用自定义方法注释的清晰示例,但没有找到一个清晰的示例。 我正在构建一个框架,以便在调用任何POJO上的某些方法时在上下文中注入用户配置文件。 框架API应该通过自定义方法注释调用,例如。我可以构建注释部分和解析器,我的问题是在调用带注释的方法时调用我的解析器的最佳方式是什么。 我们正在使用Spring 3.0,想知道配置Spring框架以理解那些