SpringBoot启动报错:无法找到UserMapper类型的Bean
报错含义与原因解析
报错具体含义
该报错表明:Spring容器初始化UserEndpoint Bean时,其构造函数的第二个参数(类型为com.spring.connectpostgresql.mapper.UserMapper)需要对应的Bean实例,但Spring容器中未找到该类型的Bean,导致应用启动失败。
报错核心原因
你的UserMapper接口仅使用了@Mapper注解,但这个注解本身无法让Spring自动将其注册为容器内的Bean:
@Mapper是MyBatis、MapStruct这类对象转换/持久化框架的专用注解,并非Spring原生的Bean注册注解(比如@Component、@Repository)。- 若使用MapStruct:需确保已引入MapStruct核心依赖与处理器依赖,同时在SpringBoot启动类或配置类上添加
@MapperScan注解,指定UserMapper所在的包路径,让Spring扫描并生成该接口的实现类,最终注册为Bean。 - 若使用MyBatis:需引入
mybatis-spring-boot-starter依赖,同样通过@MapperScan注解批量扫描Mapper接口所在包,或在UserMapper上额外添加@Repository注解,让Spring识别并创建代理Bean。
此外,需检查项目依赖是否正确引入并配置,比如MapStruct需要同时引入mapstruct和mapstruct-processor,避免因依赖缺失导致无法生成Mapper实现类。
内容的提问来源于stack exchange,提问作者user10190607
相关产品推荐
相关产品推荐

