在 spring 中创建具有相同名称的替换 rest 控制器会导致 bean 名称冲突?

长话短说,我想更换 spring boot 中现有的控制器,因为它并不令人满意。


因此,我创建了一个新的 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


犯罪嫌疑人X
浏览 167回答 1
1回答

侃侃尔雅

我曾经遇到过类似的问题,在 @RestController 注释中传递显式名称后它得到了解决,默认情况下在自动装配时采用类名称。试试这个 :V2版本:@RestController("PartControllerV2")@RequestMapping("/api/v2/parts")public class PartController implements PartsApi {V1版本:@RepositoryRestController("PartControllerV1")public class PartController {
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java