之前是,直接在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注解:
- @Mapper
- public interface DemoMapper {
- @Insert("insert into Demo(name) values(#{name})")
- @Options(keyProperty="id",keyColumn="id",useGeneratedKeys=true)
- public void save(Demo demo);
- }
2:为了不再写mapper映射文件 https://blog.csdn.net/phenomenonstell/article/details/79033144
3:为了给mapper接口 自动根据一个添加@Mapper注解的接口生成一个实现类 http://www.tianshouzhi.com/api/tutorials/mapstruct/292