我们在springboot整合mybatis时,有时会出现这个错误:Consider defining a bean of type ‘com.example.mall.mapper.UserMapper’ in you,意思是说,在你的项目中找不到"UserMapper"这个类。

        解决方法:

        方式一:在Mapper接口上加注解@Mapper

@Mapper  //表示这是一个mybatis的mapper类,也就是dao
@Component
public interface UserMapper {
    User admin(@Param("userName") String name,@Param("userPassword") String pwd);
}

        方式二:在启动类上加上@MapperScan这个注解

@SpringBootApplication
@MapperScan({"app.mapper","app.test01.dao","app.test02.dao"})
public class MallApplication {

    public static void main(String[] args) {
        SpringApplication.run(MallApplication.class, args);
    }

}

        总结:

        @SpringBootApplicatoin注解是由@Configuration和@EnableAutoConfiguration和@ComponentScan组成的。
        @SpringBootApplicatoin是用的@ComponentScan扫描的,扫描的是Component,包括@Component, @Controller, @Service, @Repository等。
        在对Mybatis自动扫描配置中,使用注解配置时,我们只要在@MapperScan中配置我们需要扫描的Mapper位置,大部分情况下是满足需求的。

        

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐