java - 如何在 Spring 3.x 中检索默认的 HandlerExceptionResolver 实例?

标签 java spring exception default

Javadoc 说 AnnotationMethodHandlerExceptionResolver , ResponseStatusExceptionResolverDefaultHandlerExceptionResolver默认情况下在 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 实例?如果我创建自己的实例会有问题吗?

最佳答案

在 BeanFactoryUtils 中发现一些东西

Map<String, HandlerExceptionResolver> matchingBeans = BeanFactoryUtils
                    .beansOfTypeIncludingAncestors(context, HandlerExceptionResolver.class, true, false);

查看DispatchServlet的源码,进入initHandlerExceptionResolvers()方法,也许你可以找到获取所有已注册异常解析器的方法。

谢谢

关于java - 如何在 Spring 3.x 中检索默认的 HandlerExceptionResolver 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13222292/

相关文章:

c++ - 结合基于异常和错误代码的类实现

java - 在 IE9 和 IE9 平台预览版中,我无法再从 Java Applet 调用 Javascript 方法

java - "Exception in thread "main"java.lang.NoClassDefFoundError : javafx/embed/swing/JFXPanel"mean and how do I fix it? 是什么意思

java - 方法级别的Spring Profiles?

spring - Shiro,Spring 应用程序将 jsessionid 附加到每个 URL

java - 抑制重载 Java 构造函数中的某些异常

javascript - 如果用户关闭浏览器 (X) 而不是注销,如何结束 session

java - junit AssertionFailedError 与内存地址

java - Spring MVC "duplicates"部分 URL

c++ - 是否应该捕获异常