@RestControllerAdvice 中许多项目的 basePacakage

Posted

技术标签:

【中文标题】@RestControllerAdvice 中许多项目的 basePacakage【英文标题】:basePacakage for many project in @RestControllerAdvice 【发布时间】:2017-06-15 07:40:31 【问题描述】:

我有多个子项目的父项目。 所有项目都以 basepakage org.dordas.project name.web.controller 开头。 我想用一个基本包配置 controllerAdvice 中的所有项目,但(星号)不起作用。

@RestControllerAdvice(basePackages =  "org.baharan.**.web.rest" )

【问题讨论】:

basePackages 不接受正则表达式/ant 样式表达式。它仅用于检查包是否以该名称开头。所以确实一个明星是行不通的。您必须定义每个基础包。 @M.Deinum 我不能。我有多个子项目的父项目。我希望在父项目中配置 controllerAdvice 而不会更改子项目。 【参考方案1】:

让我们说:

project
   |___ lib (module)
   |___ api (module)

你想将RestControllerAdvicelib module分享到api module

lib module

@RestControllerAdvice
public class ExceptionAdvice 

    @ExceptionHandler
    public Type handler(Exception e).....


api module下面添加这个配置

@SpringBootApplication
@Import(ExceptionAdvice.class)
public class FileServiceApplication ... 

【讨论】:

以上是关于@RestControllerAdvice 中许多项目的 basePacakage的主要内容,如果未能解决你的问题,请参考以下文章

Spring:激活外部 RestControllerAdvice

@RestControllerAdvice 全局拦截异常

@RestControllerAdvice作用及原理

@RestControllerAdvice 未实例化

RestControllerAdvice,ControllerAdvice

从@RestControllerAdvice @ExceptionHandler 方法返回 DTO