• There is already ‘consumerController‘ bean method


    一、问题描述

    在控制台中找到异常 Caused by可以看到:There is already 'consumerController2' bean method

    Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'userController' method 
    public java.util.List com.yh.controller.UserController.findList()
    to { /findList}: There is already 'consumerController2' bean method
    public java.lang.String com.yh.controller.ConsumerController2.findList() mapped.
        at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.assertUniqueMethodMapping(AbstractHandlerMethodMapping.java:618) ~[spring-webmvc-5.1.5.RELEASE.jar:5.1.5.RELEASE]
        at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.register(AbstractHandlerMethodMapping.java:586) ~[spring-webmvc-5.1.5.RELEASE.jar:5.1.5.RELEASE]
        at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.registerHandlerMethod(AbstractHandlerMethodMapping.java:312) ~[spring-webmvc-5.1.5.RELEASE.jar:5.1.5.RELEASE]
        at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lambda$detectHandlerMethods$1(AbstractHandlerMethodMapping.java:282) ~[spring-webmvc-5.1.5.RELEASE.jar:5.1.5.RELEASE]
     

    二、分析原因

    在Sring框架中,controler是MVC模式中的控制器,用于处理来自前端的HTTP请求,并将响应返回给前端。在Spring中,我们可以使用注解来定义controller类和方法。但是,在开发过程中,有时可能会遇到“there is already customercontroller bean method”的错误。本文将详细介绍这个问题,并提供解决方案。
    首先,让我们了解一下这个错误的原因。当我们在Spring项目中定义了两个或多个方法,这些方法都有相同的名称和参数,同时使用了@Controller或RestController注解时,就会出现这个错误。这是因为Spring无法确定哪个方法应该被视为控制器方法。

    三、解决方案

     
    那么,如何解决这个问题呢?解决方案很简单:我们只需要在@Controller或@RestController注解中为每个方法指定一个唯一的名称即可。例如: 

    在ConsumerController1 这个controller类中叫做@RequestMapping("findList");

    在ConsumerController2 这个controller类中叫做@RequestMapping("findUserList");

    1. @RestController
    2. public class ConsumerController1 {
    3. @Reference
    4. private ServiceUserService serviceUserService;
    5. @RequestMapping("findList")
    6. public String findList() {
    7. return serviceUserService.findList().toString();
    8. }
    9. }
    1. @RestController
    2. public class ConsumerController2 {
    3. @Reference
    4. private ServiceUserService serviceUserService;
    5. @RequestMapping("findUserList")
    6. public String findList() {
    7. return serviceUserService.findList().toString();
    8. }
    9. }

  • 相关阅读:
    问答机器人学习资料
    k8s--基础--22.4--storageclass--类型--Glusterfs
    【 XXL-JOB】 XXL-JOB任务分片
    Problem C: 算法10-10,10-11:堆排序
    Autoxjs 实践-Spring Boot 集成 WebSocket
    docker 安装 Sql Server
    flink redis connector需要防止包冲突
    初识Java语言中的lambda表达式和函数式接口
    突破使用debugger反调试的网页
    3 万亿美元,苹果问鼎全球市值最高公司宝座
  • 原文地址:https://blog.csdn.net/m0_63615119/article/details/133500288