在 spring 中创建一个具有相同名称的替换 rest 控制器会导致 bean 名称冲突?
Creating a replacement rest controller in spring with same name, causes bean name conflict?
长话短说,我想更换 spring 引导中现有的控制器,因为它不令人满意。
因此我创建了一个新的休息控制器 class 并开始向其添加功能。
我想维护旧的控制器,直到我将来可以删除它(一旦新版本已经完全实现)
所以我实际上有两个同名的 class。
新建Class
@RestController
@RequestMapping("/api/v2/parts")
public class PartController implements PartsApi {
...
旧Class
@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 启动应用程序中有两个同名的 Rest classes?
注意:我不愿意尝试重命名 PartController2
我曾经遇到过类似的问题,在@RestController 注释中传递显式名称后问题得到解决,默认情况下在自动装配时采用 Class 名称。试试这个:
V2版本:
@RestController("PartControllerV2")
@RequestMapping("/api/v2/parts")
public class PartController implements PartsApi {
V1版本:
@RepositoryRestController("PartControllerV1")
public class PartController {
长话短说,我想更换 spring 引导中现有的控制器,因为它不令人满意。
因此我创建了一个新的休息控制器 class 并开始向其添加功能。 我想维护旧的控制器,直到我将来可以删除它(一旦新版本已经完全实现)
所以我实际上有两个同名的 class。
新建Class
@RestController
@RequestMapping("/api/v2/parts")
public class PartController implements PartsApi {
...
旧Class
@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 启动应用程序中有两个同名的 Rest classes?
注意:我不愿意尝试重命名 PartController2
我曾经遇到过类似的问题,在@RestController 注释中传递显式名称后问题得到解决,默认情况下在自动装配时采用 Class 名称。试试这个:
V2版本:
@RestController("PartControllerV2")
@RequestMapping("/api/v2/parts")
public class PartController implements PartsApi {
V1版本:
@RepositoryRestController("PartControllerV1")
public class PartController {