在学习SpringBoot集合Mybatis的时候,发现在接口类上需要加上**@Mapper**注解。
而在SSM框架中,似乎并没有用到这个注解的印象,就去看了以前的工程,发现其中的差别。
差别主要集中在,SSM框架中,需要自己加载mybatis核心配置类,然后再通过SqlSessionFactory建立数据库的连接,然后根据传入的映射接口类返回响应接口的实现类。这一过程中,是自己手动完成UseMapper对象引用赋值的,这一点就是关键。
而SpringBoot中,将这些核心文件加载啊,工厂build啊脏活累活重复活都包揽了,这时候如果不加@Mapper,SpringBoot老哥是在容器里面找不到你这个映射接口类的,他就不能帮你生成这个接口的实现类了。
我也就不能通过properties文件来我需要的映射接口类了!所以在Web层注入并运行的时候,就会分分钟抛异常。
**_这个报错可以无视。但是如果没有加@Mapper的话,注入会失效,容器内根本就没有这个接口类的实现类。 _**
但是@Mapper这个注释不仅仅有加入容器的作用,他还能取代xml配置文件的作用~
只需要在这个映射接口类的方法上添加对应的注释,例如@Insert(sql语句),就能完成相对应的sql操作注入。
总结:1、@Mapper可以为被注释的接口映射类SpringBoot容器发起请求,让后者生成一个接口映射类的实现类,并放在容器内,供其他类注入。
2、@Mapper可以让被注释的接口映射类省去一个映射文件的xml配置,通过自己注释配置。