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

停止Spring MVC注释处理

柳高卓
2023-03-14

我需要停止处理接口上的Spring MVC注释,但应该创建此接口的bean。e、 我与MVC REST注释共享了Api接口,Controller实现了这个Api。在另一个项目中,我基于接口创建了REST客户端(通过处理注释)。但当我创建客户机时,Spring将接口视为返回类型,并在其中进行流程注释。所以,我需要在创建REST客户端时停止注释处理,但对于控制器注释应该可以工作(现在它们可以工作了)。

@RequestMapping("/resource1")
public interface Api {
    @RequestMapping(method = RequestMethod.POST)
    Resource1 getResource1();
}

@RestController
public class Controller implements Api {
    @Override
    public Resource1 getResource1() {
         return null;
    }
}

@Configuration
public class Config {
    @Bean
    public Api api() {
         return RestClientFactory.createRestClientBasedOnAnnotations(Api.class);
    }
}

共有2个答案

龙宣
2023-03-14

您可以将注释移动到实现中,只需将接口保持为纯java。

司徒正信
2023-03-14

我通过创建用于标记API接口的新注释并重写布尔isHandler(类

@Retention(RetentionPolicy.RUNTIME)
public @interface BackEndApiInterface {
}

@BackEndApiInterface 
@RequestMapping("/resource1")
public interface Api {
    @RequestMapping(method = RequestMethod.POST)
    Resource1 getResource1();
}

@RestController
public class Controller implements Api {
    @Override
    public Resource1 getResource1() {
        return null;
    }
}

@Configuration
public class Config {
    @Bean
    public Api api() {
         return RestClientFactory.createRestClientBasedOnAnnotations(Api.class);
    }

    @Bean
    public static RequestMappingHandlerMapping requestMappingHandlerMapping() {
        return new RequestMappingHandlerMapping() {
            @Override
            protected boolean isHandler(Class<?> beanType) {
                if (AnnotationUtils.findAnnotation(beanType, BackEndApiInterface.class) != null) {
                    return false;
                }
                return super.isHandler(beanType);
            }
        };
    }
}
 类似资料:
  • 我正在使用注释处理器来处理方法参数的注释。 用于参数的注释类型有一个注释@参数 现在,当注释处理器运行时,我想检查参数注释()是否有参数注释。我通过执行以下代码来实现这一点。 由于某种原因,arg始终为空。是否有注释未返回的原因?

  • 问题内容: 在阅读 Java 中的自定义注释处理器的代码时,我注意到处理器方法中的这段代码: 碰巧我也在使用自定义注释处理器,所以我想在我的注释处理器中使用上面的代码段。 我以这种方式尝试了上面的代码: & 这条路: 但我没有注意到处理器行为的任何变化。我得到了支票,但看不到有什么用。 我想知道在处理特定回合时有用的用例。 问题答案: 这两项检查都很重要,但是直到在同一项目中一次运行多个注释处理器

  • 主要内容:使用Rem语句注释,注释使用::声明为创建的脚本添加注释或文档总是一个好习惯。 这是一个维护脚本用来理解脚本实际所做的事情所必需的注释。 例如,考虑下面这段没有注释形式的代码。 如果一个没有任何注释的脚本,普通人试图理解脚本,那么需要很多时间来理解脚本做些什么工作。 使用Rem语句注释 有两种方法可以在批处理脚本中创建注释; 一个是通过命令。 语句后的任何文本都将被视为注释,不会被执行。 以下是此声明的一般语法。 语法 其中是需要添

  • 在阅读Java中的自定义注释处理器的代码时,我注意到处理器的方法中的这段代码: 碰巧我也在处理一个自定义注释处理器&我想在我的注释处理器中使用上面的代码片段。 但是我没有注意到处理器的行为有任何变化。我得到了检查,但我看不出有什么用。 我想知道在处理某个回合时使用有用的用例。

  • 需要注释处理器的帮助。我创建了一个简单的注释处理器,它使用@autoservice注释来检查注释的字段是否为最终字段。但它没有显示任何编译时错误。这是我的配置 注释: 注释处理器: pom文件: 测试文件:

  • 问题内容: 我有一个名为@Pojo的自定义注释,可用于自动生成Wiki文档: 我这样使用它: 注释资源方法,以便注释处理器可以自动生成描述所需资源和类型的Wiki页面。 我需要在注释处理器中读取该字段的值,但出现运行时错误。 在我的处理器的源代码中,我有以下几行: 但实际的类不适用于处理器。我认为我需要一个替代品来代替实际课程。我不确定该怎么买。 我得到的错误是: 该是我的一个提到的一类注释。 不