Javadoc表示在DispatcherServlet中默认启用了AnnotationMethodHandlerExceptionResolver、ResponseStatusExceptionResolver和DefaultHandlerExceptionResolver。
我正在尝试创建HandlerExceptionResolverComposite,但我希望检索默认情况下启用的HandlerExceptionResolver实例。我尝试了@Autowired,但没有成功。
我目前的解决方案是:
@Configuration
public class ErrorHandling {
// @Autowired
// AnnotationMethodHandlerExceptionResolver amher;
//
// @Autowired
// ResponseStatusExceptionResolver rser;
//
// @Autowired
// DefaultHandlerExceptionResolver dher;
@Bean
HandlerExceptionResolverComposite getHandlerExceptionResolverComposite() {
HandlerExceptionResolverComposite result
= new HandlerExceptionResolverComposite();
List<HandlerExceptionResolver> l
= new ArrayList<HandlerExceptionResolver>();
l.add(new AnnotationMethodHandlerExceptionResolver());
l.add(new ResponseStatusExceptionResolver());
l.add(new DefaultHandlerExceptionResolver());
result.setExceptionResolvers(l);
return result;
}
}我的问题是:如何检索默认启用的HandlerExceptionResolver实例?如果我创建自己的实例会有问题吗?
发布于 2012-11-05 15:29:09
在BeanFactoryUtils中找到了一些东西
Map<String, HandlerExceptionResolver> matchingBeans = BeanFactoryUtils
.beansOfTypeIncludingAncestors(context, HandlerExceptionResolver.class, true, false);检查DispatchServlet的源代码并转到initHandlerExceptionResolvers()方法,也许你可以找到一种方法来获得所有注册的异常解析器。
谢谢
https://stackoverflow.com/questions/13222292
复制相似问题