在我的网络应用程序中,我有很多地方需要检索当前登录的帐户(从 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/