@Repository
用于声明dao层的bean
@Mapper
用于Mybatis找到对应的mapper,在编译时动态生成代理类,实现数据库查询功能。
但仅使用@Mapper注解,在其他变量中依赖注入,IDEA 会提示错误,但不影响运行,因为我们没有显式标注这是一个Bean,IDEA认为运行时会找不到实例注入,所以可以在对应的接口上添加bean的声明,@Repository或者@Component,效果都是一样的,只是为了声明为bean
@MapperScan
在启动类上添加该注解,自动扫描包路径下的所有接口,接口上不用添加任何注解。
实例:
@MapperScan("com.test.dao")
@SpringBootApplication
public class TestApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(TestApplication.class, args);
}
}
@MapperScan和@Mapper二者选一,否则 Mybatis 找不到 mapper。
@Repository 可有可无,可以消去依赖注入的报错信息。
文章仅作为个人学习整理