长话短说,我不能在弹簧靴中更换现有控制器,因为它不能令人满意。
因此,我创建了一个新的rest控制器类,并开始向其添加功能。 我想维护较旧的控制器,直到将来可以删除它(一旦较新的版本已完全实现)
所以我实际上有两个同名的类。
新课程
@RestController
@RequestMapping("/api/v2/parts")
public class PartController implements PartsApi {
...
旧课程
@RepositoryRestController
public class PartController {
启动服务时,发生以下错误:
Annotation-specified bean name 'partController' for bean class [controller.v2.PartController] conflicts with existing, non-compatible bean definition of same name and class [controller.PartController]
我尝试使用@Qualifier
批注,但无法编译。
如何在Spring Boot应用程序中使用两个具有相同名称的Rest类?
注意:我讨厌尝试重命名PartController2
答案 0 :(得分:4)
我曾经遇到过类似的问题,在@RestController批注中传递了显式名称后,它得到了解决,默认情况下,该名称在自动装配时采用Class名称。试试这个:
V2版本:
@RestController("PartControllerV2")
@RequestMapping("/api/v2/parts")
public class PartController implements PartsApi {
V1版本:
@RepositoryRestController("PartControllerV1")
public class PartController {