一尘不染

如何使用Spring MVC将会话属性作为方法参数(参数)传递

spring

简而言之,我想要这样的东西:

public String action(@SessionAttribute User user) {..}

代替

public String action(HttpSession session) {
     User user = session.getAttribute("user");
}

主要是为了:

  • readability
  • unit testing

阅读 288

收藏
2020-04-18

共1个答案

一尘不染

我找到了解决方案。

我们的想法是注册自定义WebArgumentResolverAnnotationMethodHandlerAdapter,它可以处理一个自定义的注释- @SessionAttribute(或@SessionParam)。

param.getParameterName()如果未value指定,则可以使用其中张贴的代码的注释。

2020-04-18