将对象的新实例注入每个请求处理程序

将对象的新实例注入每个请求处理程序,第1张

将对象的新实例注入每个请求处理程序

Spring MVC有一个参数解析器构造,可直接支持您的请求。用 @RequestMapping
注释的每个处理程序方法都将进行参数解析,其中框架将扫描处理程序参数,检查类型并实例化适当的对象。这就是注入请求,模型和许多其他类型的机制,仅通过在处理程序的方法签名中声明对象即可。

您可以编写自定义参数解析程序,以解析自定义类型并在方法中可用。程序简单三步过程

  1. 在您的情况下,创建一个POJO类 MyRequestFoo

  2. 制作解析器,例如

      public class MyRequestFooResolver implements HandlerMethodArgumentResolver {    @Override    public boolean supportsParameter(MethodParameter parameter) {        return parameter.getParameterType().equals(MyRequestFoo.class);    }    @Override    public Object resolveArgument(MethodParameter parameter,  ModelAndViewContainer mavContainer, NativeWebRequest webRequest,  WebDataBinderFactory binderFactory)    throws Exception {        return new MyRequestFoo();    }}

3.注册解析器

 <mvc:annotation-driven>     <mvc:argument-resolvers>         <bean ></bean>       </mvc:argument-resolvers> </mvc:annotation-driven>

或在Java配置中

@Configuration@EnableWebMvcpublic class WebConfig extends WebMvcConfigurerAdapter {  @Override  public void addArgumentResolvers(List< Handlermethodargumentresolver > argumentResolvers) {        MyRequestFooResolver myRequestFooResolver = new MyRequestFooResolver ();        argumentResolvers.add(myRequestFooResolver );  }}

比仅通过将类型添加为处理程序方法参数来使用它

@RequestMapping("/search")public SomeReturnObject search(MyRequestFoo foo) {   // ...}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4925193.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存