长话短说,我不希望在春季启动时更换现有的控制器。
因此,我创建了一个新的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
最佳答案
我曾经遇到过类似的问题,在@RestController批注中传递显式名称后,它得到了解决,默认情况下,该名称在自动装配时采用Class名称。尝试这个 :
V2版本:
@RestController("PartControllerV2")
@RequestMapping("/api/v2/parts")
public class PartController implements PartsApi {
V1版本:
@RepositoryRestController("PartControllerV1")
public class PartController {