如何解决Spring-使用来自外部jar的异常处理程序处理其他2个项目
我有2个具有相同异常并使用相同异常处理程序的项目。 因此,所有异常和异常处理程序都移至了外部模块。
可以很好地导入异常,但是似乎未调用异常处理程序。 据我了解,如果我具有@ComponentScan批注,则应从外部jar中调用该处理程序。
这是我的异常处理程序的样子:
@ComponentScan(basePackages = {"com.*first-project*.controller","com.*second-project*.controller"})
@ControllerAdvice(basePackages = {"com.*first-project*.controller","com.*second-project*.controller"})
public class GlobalExceptionHandler {
...
}
当异常处理程序单独属于每个项目时,它可以正常工作。然后,它在@ControllerAdvice批注中只有该项目的路径,而没有@ComponentScan。
带有异常处理程序的外部jar当前通过以下方式导入:
compile files('libs/*jar-name*.jar')
解决方法
您应该从主项目和扩展jar中正确扫描组件。此扫描应在主项目(project-1和project-2)上进行。
因此,在project-1 & project-2
中,您必须扫描在 jar-name 中找到的软件包。您可以在GlobalExceptionHandler
中创建单独的配置文件。
@ControllerAdvice(basePackages = {"jar.package"})
public class GlobalExceptionHandler {...}
,
在项目中添加@Import(GlobalExceptionHandler.class)解决了该问题,并且现在可以正确调用该处理程序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。