java - 在 spring 中创建同名的替换休息 Controller 会导致 bean 名称冲突?

标签 java spring spring-restcontroller

长话短说,我想更换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/

相关文章:

java - 如何在 spring boot 中以编程方式设置 defaultLocale

javascript - 使用 MVC 标记添加 css、js 时,找不到使用 URI Spring MVC 的 HTTP 请求的映射

javax.sound.sampled.LineUnavailableException :

java - 检查列表是否包含数组的所有元素

java - Async doInBackground 会崩溃,并强制关闭

java - 使用 Spring 计划注释和更新 View

java - findElements() 返回 NoSuchElementException 而不是返回空列表

java - 返回错误列表

java - 错误 404 - 使用@RestController 获取请求 - SpringBoot

java - 有没有办法找到RestAPI支持的所有操作以及操作所需的参数?