Java 如何在Spring3.x中检索默认HandlerExceptionResolver实例?
Javadoc说明了这一点,并在DispatcherServlet中默认启用 我正在尝试创建一个Java 如何在Spring3.x中检索默认HandlerExceptionResolver实例?,java,spring,exception-handling,default,Java,Spring,Exception Handling,Default,Javadoc说明了这一点,并在DispatcherServlet中默认启用 我正在尝试创建一个HandlerExceptionResolverComposite,但我想检索默认启用的HandlerExceptionResolver实例。我尝试了@Autowired,但没有成功 我目前的解决办法是: @Configuration public class ErrorHandling { // @Autowired // AnnotationMethodHandlerExceptionRes
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 amher;
//
//@自动连线
//ResponseStatusExceptionResolver;
//
//@自动连线
//DefaultHandlerExceptionResolver dher;
@豆子
HandlerException ResolverComposite GetHandlerException ResolverComposite(){
HandlerException解析复合结果
=新HandlerExceptionResolverComposite();
清单l
=新的ArrayList();
l、 添加(新的AnnotationMethodHandlerExceptionResolver());
l、 添加(新的ResponseStatusExceptionResolver());
l、 添加(新的DefaultHandlerExceptionResolver());
结果。SetExceptionResolver(l);
返回结果;
}
}
我的问题是:如何检索默认启用的
HandlerExceptionResolver
实例?如果我创建自己的实例会有问题吗?在BeanFactoryUtils中发现了一些东西
Map<String, HandlerExceptionResolver> matchingBeans = BeanFactoryUtils
.beansOfTypeIncludingAncestors(context, HandlerExceptionResolver.class, true, false);
Map matchingBeans=BeanFactoryUtils
.beansoftypeincluding祖先(context,HandlerExceptionResolver.class,true,false);
检查DispatchServlet的源代码并转到initHandlerExceptionResolvers()方法,也许您可以找到获取所有已注册异常解析程序的方法
谢谢是的,但我只测试了一个案例。