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/