由于我比较懒,所以对于mybatis-generator工具有着很大的喜欢,我感觉它既可以偷懒,又可以提高写代码的效率,对于比较简单的sql查询语句,使用它就足够了,但是我今天遇到了一个问题,就是为什么我们生成的mapper代码不用写@Mapper注解在接口上,也可以注册到spring的IOC容器中。
这是因为我们使用了@MapperScan注解
那么@Mapper注解与@MapperScan注解有什么关联呢?
1. 使用@Mapper,最终Mybatis会有一个拦截器,会自动的把@Mapper注解的接口生成动态代理类。
2. 使用@MapperScan配置一个或多个包路径,自动的扫描这些包路径下的类,自动的为它们生成动态代理类。
3. @Mapper注解针对的是一个接口一个接口的使用,太麻烦了。
4. @MapperScan注解针对的是一个或多个包中的所有接口,相比@Mapper注解来说非常简单。