我在应用程序中有一组控制器和一个注释为 @ControllerAdvice
的类,它设置了在每个控制器中使用的某些数据元素。我正在使用 Spring MVC 3.2
并为这些控制器配备了 Junits。当我运行 Junit 时,控件不会进入 ControllerAdvice
类,如果我在 Tomcat
中部署应用程序并通过浏览器提交请求,它可以正常工作。
有什么想法吗?
原文由 Arun 发布,翻译遵循 CC BY-SA 4.0 许可协议
我在应用程序中有一组控制器和一个注释为 @ControllerAdvice
的类,它设置了在每个控制器中使用的某些数据元素。我正在使用 Spring MVC 3.2
并为这些控制器配备了 Junits。当我运行 Junit 时,控件不会进入 ControllerAdvice
类,如果我在 Tomcat
中部署应用程序并通过浏览器提交请求,它可以正常工作。
有什么想法吗?
原文由 Arun 发布,翻译遵循 CC BY-SA 4.0 许可协议
8 回答6.2k 阅读
1 回答2.1k 阅读✓ 已解决
1 回答1.9k 阅读✓ 已解决
1.9k 阅读
2 回答1.1k 阅读
1 回答931 阅读
1 回答576 阅读
在使用@eugene-to 和另一个类似 的 答案后,我发现了局限性并在 Spring 上提出了一个问题: https ://jira.spring.io/browse/SPR-12751
因此,Spring 测试引入了在 4.2 中的构建器中注册
@ControllerAdvice
类的功能。如果您使用的是 Spring Boot ,则需要 1.3.0 或更高版本。通过这一改进,如果您使用的是独立设置,那么您可以像这样设置一个或多个
ControllerAdvice
实例:注意: 名称
setControllerAdvice()
可能不会立即显而易见,但您可以将许多实例传递给它,因为它具有 var-args 签名。