java - 我想知道如何转换Spring mvc Java配置环境

标签 java xml spring model-view-controller config

Spring mvc .xml文件我想在配置时将bean配置更改为java配置环境。

dispatcher-servlet.xml 文件

<bean class="pporan.maven.framework.spring.CustomRequestMappingHandlerAdapter">
    <property name="customArgumentResolvers" ref="eDataArgumentResolver"></property>
</bean> 

<bean id="eDataArgumentResolver" class="pporan.maven.framework.spring.EDataArgumentResolver"/>

CustomRequestMappingHandlerAdapter.class文件内容

public class CustomRequestMappingHandlerAdapter implements RequestMappingHandlerAdapter {

  @Override
  public void afterPropertiesSet() {
      // TODO Auto-generated method stub
      super.afterPropertiesSet();
       .........             
       setArgumentResolvers(list);
  }
}

EDataArgumentResolver.class文件内容

public class EDataArgumentResolver implements HandlerMethodArgumentResolver {

@Override
public Object resolveArgument(MethodParameter methodParameter,
            ModelAndViewContainer modelAndViewContainer,
            NativeWebRequest nativeWebRequest,
            WebDataBinderFactory webDataBinderFactory) throws Exception {

    HttpServletRequest request = (HttpServletRequest) nativeWebRequest.getNativeRequest();
    ......

        return eData;
    }
}

  @Override
  public boolean supportsParameter(MethodParameter methodParameter) {
      return methodParameter.getParameterType().equals(EData.class);
  }
}

我是这样一一制作的。

我想知道如何在java配置环境中执行此操作

最佳答案

我没有时间实际尝试,但你应该能够这样做:

@Configuration
public YourConfigClass {

    ...

    @Bean
    public HandlerMethodArgumentResolver eDataArgumentResolver() {
        return new HandlerMethodArgumentResolver() {
            @Override
            public boolean supportsParameter(MethodParameter parameter) {
                parameter.getParameterType().equals(EData.class);
            }

            @Override
            public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest,
                WebDataBinderFactory binderFactory) throws Exception {
                HttpServletRequest request = (HttpServletRequest) webRequest.getNativeRequest();

                [...]

                return eData;
            }
        };
    }

    @Bean
    public RequestMappingHandlerAdapter requestMappingHandlerAdapter(final HandlerMethodArgumentResolver eDataArgumentResolver) {
        final RequestMappingHandlerAdapter requestMappingHandlerAdapter = new RequestMappingHandlerAdapter();
        requestMappingHandlerAdapter.setCustomArgumentResolvers(Collections.singletonList(eDataArgumentResolver));
        return requestMappingHandlerAdapter;
    }
}

很高兴让我知道它是否有效!

关于java - 我想知道如何转换Spring mvc Java配置环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40891090/

相关文章:

java - hibernate (HQL)

c# - 使用硬编码架构 C# 创建 XmlDocument

python - 使用 python-docx,如何关联 XML 命名空间前缀?

java - 如何监听集合中的变化?

java - Spring TaskExecutor 实现

java - 使用 Callable 时出现奇怪的调用堆栈

使用多个选择框的 JavaFX 过滤 ListView

java - 将数组列表导入并打印到 JSP

c# - 使用 XDocument 解析 XML

spring - 如何在 Spring Security 中允许单个 URL