Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Spring3.x中检索默认HandlerExceptionResolver实例?_Java_Spring_Exception Handling_Default - Fatal编程技术网

Java 如何在Spring3.x中检索默认HandlerExceptionResolver实例?

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

Javadoc说明了这一点,并在DispatcherServlet中默认启用

我正在尝试创建一个
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()方法,也许您可以找到获取所有已注册异常解析程序的方法


谢谢

是的,但我只测试了一个案例。