Spring Boot @RequestMapping 冲突解决:父类与子类方法相同路径问题
如果子类的方法与父类的 ' @RequestMapping ' 相同,会出现冲突,这是因为 Spring MVC 会将子类和父类的映射路径都注册到处理器映射器中,而映射路径相同会导致处理器映射器无法判断哪一个方法要处理请求。
解决方法:
-
重写父类的 ' @RequestMapping ' 注解,给子类的方法添加一个不同的路径。
-
在子类的 ' @RequestMapping ' 注解中添加一个 unique 属性,将其设置为 true,这样 Spring MVC 就会只将子类的映射路径注册到处理器映射器中,从而避免冲突。例如:
@Controller
@RequestMapping("/parent")
public class ParentController {
@RequestMapping(value = "/hello")
public String hello() {
return "hello from parent";
}
}
@Controller
@RequestMapping(value = "/child", unique = true)
public class ChildController extends ParentController {
@RequestMapping(value = "/hello")
public String hello() {
return "hello from child";
}
}
在这个例子中,子类的 ' @RequestMapping ' 注解中添加了 unique 属性,并将其设置为 true。这样,子类的映射路径就不会和父类的映射路径冲突。
原文地址: https://www.cveoy.top/t/topic/oiOq 著作权归作者所有。请勿转载和采集!