Spring boot 如何解决RestControllerAvise不工作的问题?

Spring boot 如何解决RestControllerAvise不工作的问题?,spring-boot,Spring Boot,我有一个关于RestControllerAdvice的问题。 我构建了一个内部jar文件作为自己的库,并实现了一些异常处理程序。 无论如何,当出现抛出异常错误时,RestControllerAdvice不工作 再控制建议 验证器方法 RestController 当发布此请求时,将抛出异常,因为我已经处理了不为空或null的请求 但是我的restControlleradvise不工作,它抛出内部异常错误 注意:如果我使用相同的项目,它会正常工作, 但当构建为jar文件供其他用途时,此函数不起作用

我有一个关于RestControllerAdvice的问题。 我构建了一个内部jar文件作为自己的库,并实现了一些异常处理程序。 无论如何,当出现抛出异常错误时,RestControllerAdvice不工作

  • 再控制建议
  • 验证器方法
  • RestController
  • 当发布此请求时,将抛出异常,因为我已经处理了不为空或null的请求 但是我的restControlleradvise不工作,它抛出内部异常错误

    注意:如果我使用相同的项目,它会正常工作, 但当构建为jar文件供其他用途时,此函数不起作用


    谢谢。

    可能的原因之一

    • 当您当时构建为内部JAR时,spring不知道JAR中的任何类,因此它不会从JAR文件中搜索任何包/类,这就是为什么来自内部JAR的
      @RestControllerAdvice
      无法工作的原因
    要解决此问题,请在
    @ComponentScan
    如下

    @ComponentScan(basePackages = {"com.exception.base"})
    

    因此,spring将在扫描项目文件时插入ApiControllerHandler

    • 当您当时构建为内部JAR时,spring不知道JAR中的任何类,因此它不会从JAR文件中搜索任何包/类,这就是为什么来自内部JAR的
      @RestControllerAdvice
      无法工作的原因
    要解决此问题,请在
    @ComponentScan
    如下

    @ComponentScan(basePackages = {"com.exception.base"})
    
    因此,spring将在扫描项目文件时插入ApiControllerHandler

      @PostMapping("/")
       public String index(@RequestBody Map<String, Object> map){
           JSONObject jsonObject = new JSONObject(map);
           SPNValidator.request(jsonObject, "username");
           return "Hello";
       }
    
    {
       "username" : ""
    
    @ComponentScan(basePackages = {"com.exception.base"})