ijava学习网> 知识分享> JAVA框架> Spring Boot MyBatis注解 @MapperScan和@Mapper之详细解析

Spring Boot MyBatis注解 @MapperScan和@Mapper之详细解析

时间: 2018-07-12 15:33:17 标签springboot , @Mapper , @MapperScan


我们定义UserMapper类,但是并没有在该类上定义类似@Service或者@Controller之类的注解,那么为什么可以被Spring管理呢?


(1)方式一:使用@Mapper注解

       为了让UserMapper能够让别的类进行引用,我们可以在UserMapper类上添加@Mapper注解:

@Mapper
public interface UserMapper {

    @Select("SELECT * FROM tb_user1 WHERE id = #{id}")
    User getUserById(Integer id);
    }

直接在Mapper类上面添加注解@Mapper,这种方式要求每一个mapper类都需要添加此注解,麻烦。


(2)方式二:使用@MapperScan注解

通过使用@MapperScan可以指定要扫描的Mapper类的包的路径,比如:

@SpringBootApplication
@MapperScan("www.ijava.com.*.mapper")
public class Application {

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

或者:

@SpringBootApplication
@MapperScan("www.ijava.com.mapper")
public class Application {

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

可以根据包的结构指定不同的表达式。


使用@MapperScan注解多个包

可以使用如下的方式指定多个包:

    @SpringBootApplication  
    @MapperScan({"com.ijava.person","com.ijava.user"})  
    public class App {  
        public static void main(String[] args) {  
           SpringApplication.run(App.class, args);  
        }  
    }

   如果mapper类没有在Spring Boot主程序可以扫描的包或者子包下面,可以使用如下方式进行配置:

@SpringBootApplication  
@MapperScan({"com.ijava.*.mapper","org.ijava.*.mapper"})  
public class App {  
    public static void main(String[] args) {  
       SpringApplication.run(App.class, args);  
    }  
}


版权说明| 关于ijava| 合作伙伴| 联系我们| 网站地图| 招贤纳士

Copyright © 2017 www.ijava.com All Rights Reserved 版权所有•ijava学习网 京ICP备14061482号-18         官方QQ:3325669927

ijava学习网提供免费java教程和大量java面试题库,给高级会员提供免费的java培训,同时提共一些java开发项目和java下载,java工程师,java菜鸟们快来哦。记住我们的网站:www.ijava.com