@Mapper @Repository的区别以及Bean 的拓展

@Mapper @Repository这两种注解的区别在于:

1、使用@mapper后,不需要在spring配置中设置扫描地址,通过mapper.xml里面的namespace属性对应相关的mapper类,spring将动态的生成Bean后注入到ServiceImpl中。

2、@repository则需要在Spring中配置扫描包地址,然后生成dao层的bean,之后被注入到ServiceImpl中。在这里插入图片描述
在这里插入图片描述

3、在 Spring 程序中,Mybatis 需要找到对应的 mapper,在编译的时候动态生成代理类,实现数据库查询功能,所以我们需要在接口上添加 @Mapper 注解。

4、@Repository 用于声明 dao 层的 bean

5、其次是:
@Mapper一定要有,否则Mybatis找不到mapper,程序不能运行。
@Repository 可有可无,可以消去依赖注入的报错信息。
eg:如果没有@Repository,IDEA 会提示错误,但是不影响运行。

那么什么是bean?

1、所有属性为private
2、提供默认构造方法
3、提供getter和setter
4、实现serializable接口

你可能感兴趣的:(好文章)