如果您的Spring Boot应用程序的多个控制器类使用相同的@RequestMapping注释公共父类,则可能会引发冲突。这是因为Spring Boot无法确定哪个控制器应该处理该请求。为了解决这个问题,您可以使用@RequestMapping值的继承来确保子类控制器在重写映射方法时继承父类控制器的映射值。

例如,假设您有一个名为BaseController的控制器类,其中定义了一个@RequestMapping注释:

@RequestMapping("/base")
public class BaseController {
    // ...
}

然后,您有两个子类控制器:UserController和ProductController,它们都扩展自BaseController并使用相同的@RequestMapping注释:

@RequestMapping("/users")
public class UserController extends BaseController {
    // ...
}

@RequestMapping("/products")
public class ProductController extends BaseController {
    // ...
}

这将导致映射冲突,并且Spring Boot将无法确定哪个控制器应该处理“/base”请求。为了解决这个问题,您可以使用@RequestMapping值的继承来确保子类控制器在重写映射方法时继承父类控制器的映射值:

@RequestMapping("/base")
public class BaseController {
    // ...
}

@RequestMapping
public class UserController extends BaseController {
    // ...
}

@RequestMapping
public class ProductController extends BaseController {
    // ...
}

在这个示例中,子类控制器不再使用@RequestMapping注释,而是继承它们的父类控制器的映射值。这将确保每个控制器都将使用正确的映射路径来处理请求

springboot requestMapping 公共父类冲突

原文地址: https://www.cveoy.top/t/topic/fy0k 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录