Spring RequestMapping参数自定义注解

标签 spring annotations

在我的网络应用程序中,我有很多地方需要检索当前登录的帐户(从 session 中)。

Account account = getAccountFromSession(session);

这段代码重复了很多很多次。我想知道是否可以让我的请求看起来像这样:

@RequestMapping(value="/something", method=RequestMethod.POST)
public String handleSomething(
        @RequestParam String someParam,
        @Account Account account) { ... }

@Account 是我的自定义注解。

我如何告诉 spring 处理这个注解?

最佳答案

使用 HandlerMethodArgumentResolver (或 WebArgumentResolver 对于低于 3.1 的版本)。

启用参数解析器:

  • 如果您使用 @EnableWebMvc - 让你的 @Configuration实现 WebMvcConfigurer并覆盖 addArgumentResolvers()
  • 如果您使用 <mvc:annotation-driven> - 使用 argument-resolvers属性
  • 对于旧版本,您可能需要声明 AnnotationMethodHandlerAdapter手动设置它的 customArgumentResolvers

关于Spring RequestMapping参数自定义注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17200327/

相关文章:

java - 检查大型 POJO 中是否有少数字段为空,如果为空,则添加一些自定义错误消息

android - 将 @SuppressLint ("RestrictedApi") 与 AndroidX 库一起使用是否安全?

java - 使用注释写入 Jersey 中的 ServletContext。

ios - showCallout 无需点击 -iOS

spring - 使用 Spring Data Neo4j 解析实体返回错误的实体类型

java - 用户登录后如何重定向到目标页面

java - 如何在 Spring 的 Tomcat 网络服务器中外部化 application.properties?

android - 没有使用maven将注释处理(生成的)源编译成apk

java - 多个注解

Spring @Valid 验证器未正确调用(Roo、Hibernate)