gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 15:04:01 24 4
gpt4 key购买 nike

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com