首页 > 其他分享 >Spring Boot - Parameter 0 of constructor in com.example.iocdi.controller.UserController required a s

Spring Boot - Parameter 0 of constructor in com.example.iocdi.controller.UserController required a s

时间:2023-09-12 12:44:06浏览次数:44  
标签:java iocdi Spring MapperScan bean com example

问题描述

报错截图

如上图所示,在加入了 @MapperScan 注解之后就出现了这个问题。

file:[src/java/config/MybatisConfig.java]
@Configuration
@MapperScan("com.example.iocdi")
public class MybatisConfig {

}

因为这个 @MapperScan 注解扫描了 com.example.iocdi 下面所有的包,

image

而 UserServiceImpl 的接口是 UserService,它们的类型一致,导致注入的 bean 类型重复,不知道哪一个 bean 是对的。

并且,我在 Controller 层中注入的方式是以接口类型作为变量注入的实现类:

file:[src/java/controller/UserController.java]
@RequiredArgsConstructor
@RestController("/user")
public class UserController {

    private final UserService service;

    @GetMapping("/get/all")
    public List<User> getUserAll() {
        return service.queryAll();
    }

}

解决方式

只需要缩小 @MapperScan 扫描的范围即可,让它只扫描 mapper 包下的 bean。

file:[src/java/config/MybatisConfig.java]
@Configuration
del:[@MapperScan("com.example.iocdi")]:del
add:[@MapperScan("com.example.iocdi.mapper")]:add
public class MybatisConfig {

}

标签:java,iocdi,Spring,MapperScan,bean,com,example
From: https://www.cnblogs.com/Himmelbleu/p/17695867.html

相关文章

  • k8s集群-spring cloud 集成seata的时候:can not register RM,err:can not connect to s
    背景说明seate和其他微服务在k8s集群中部署,都在同一个命名空间。注册到nacos的同一个命名空间seate是官方提供,无改动k8s中部署情况:报错提示core服务的报错内容:2023-09-1211:07:06.524ERROR7---[eoutChecker_2_1]i.s.c.r.netty.NettyClientChannelManager:0101c......
  • [SpringSecurity5.2.2源码分析七]:WebAsyncManagerIntegrationFilter
    1、作用• 是为了接口返回异步对象,然后执行异步任务也能通过SecurityContextHolder获取SecurityContext• 比如说返回值是WebAsyncTask的时候2、WebAsyncManagerIntegrationFilter• 源码很短就是在WebAsyncManager中注册了SecurityContextCallableProcessingInterceptorpublic......
  • Spring Boot 中调用外部接口的 3 种方式
    ......
  • springboot、jvm调优(设置运行的参数)
    1、工具jdk自带的工具位置:找到窗口->应用程序2、问题和方式在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。2.1springboot修改配置文件调优关于修改配置文件application.properties。https://docs.spring.io/spring-boot/docs/current/reference/ht......
  • springboot解决循环依赖
    importorg.springframework.context.annotation.Lazy;@ServicepublicclassCService{privateAServiceaService;//去掉@Autowired//采用构造器方式,加入Lazy注解publicCService(@LazyAServiceaService){this.aService=aService;......
  • SpringCloud为啥要采用HTTP,不采用RPC
    1、首先SpringCloud开启WEB服务依赖于Tomcat,Tomcat内部采用HTTP协议,开发者编写JSON作为资源传输和响应,可以更加能灵活处理业务数据。2、RPC基于TCP协议,客户端和服务端需要三次握手,四次挥手进行数据传输。TCP是数据传输层,传输协议统一由服务端进行编写,进行二进制传输,依赖序列化和......
  • Springboot整合Quartz通用项目
    1.整合的意义:在某些应用场景下要求任务必须具备高可用性和可扩展性,单台服务器不能满足业务需求,这时就需要使用Quartz实现分布式定时任务当然分布式下Quartz并不是最好的,但是确是最简单易实现,实现快速开发。其他选择如:xxjob、powerjob...2.依赖:项目结构:pom依赖<dependenc......
  • Spring集成线程池
    在Spring中,可以使用TaskExecutor接口来集成线程池。以下是一个示例代码,演示如何在Spring中配置和使用线程池:1.首先,添加依赖项,以使用Spring的线程池支持。在Maven项目中,可以在pom.xml文件中添加以下依赖项:<dependencies><!--其他依赖项--><dependency><gr......
  • Spring 注入集合
    使用<property>标签的value属性配置原始数据类型和ref属性配置对象引用的方式来定义Bean配置文件。这两种情况都涉及将单一值传递给Bean。那么如果您想传递多个值,例如Java集合类型,如List、Set、Map和Properties怎么办?为了处理这种情况,Spring提供了四种类型的集合配置元素,如下所示:......
  • springcloud中网关起什么作用
    (目录)springcloud中网关起什么作用在SpringCloud中,网关起到了路由和过滤的作用。路由:网关通过配置路由规则,将请求转发到不同的服务实例上。它可以根据请求的URL、请求的HTTP方法、请求的Header等信息,将请求路由到相应的服务实例上。通过网关,可以实现请求的负载均衡和动态路......