@Mapper 和@MapperScan

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

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

@SpringBootApplication
@MapperScan("com.lz.water.monitor.mapper")
// 添加对mapper包扫描
public class Application {


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

}

@Mapper的作用

网上查到以下这三个作用,但是目前好像只有第一种被用到,后面2种网上说的都不很很清晰,主要作用还是注入成bean

1:为了把mapper这个DAO交給Spring管理 http://412887952-qq-com.iteye.com/blog/2392672

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

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

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

Java代码  
  1. @Mapper  
  2. public interface DemoMapper {  
  3.     @Insert("insert into Demo(name) values(#{name})")  
  4.     @Options(keyProperty="id",keyColumn="id",useGeneratedKeys=true)  
  5.     public void save(Demo demo);  
  6. }  

2:为了不再写mapper映射文件 https://blog.csdn.net/phenomenonstell/article/details/79033144

3:为了给mapper接口 自动根据一个添加@Mapper注解的接口生成一个实现类 http://www.tianshouzhi.com/api/tutorials/mapstruct/292

原文地址:https://www.cnblogs.com/cherishforchen/p/10917807.html