长话短说,我想更换spring boot中现有的controller,因为它并不令人满意。
因此,我创建了一个新的休息 Controller 类,并开始向其添加功能。 我想维护旧的 Controller ,直到我将来可以删除它(一旦新版本已经完全实现)
所以我实际上有两个同名的类。
新类
@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 注解中传递显式名称后问题得到解决,默认情况下,在 Autowiring 时采用类名。试试这个:
V2 版本:
@RestController("PartControllerV2")
@RequestMapping("/api/v2/parts")
public class PartController implements PartsApi {
V1版本:
@RepositoryRestController("PartControllerV1")
public class PartController {
关于java - 在 spring 中创建同名的替换休息 Controller 会导致 bean 名称冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53251847/