mybatis和spring整合的过程。

  1. Mybatis 接口编程中dao 层接口没有注解和 为什么能被实例化为bean?

    在Spring配置Mybatis的文件中我们可以看到如下代码:

<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
<!-- 自动扫描mapping.xml文件 -->
<property name="basePackage" 
          value="classpath:com/cn/zhang/mapping/*.xml">  
</property>  

MapperScannerConfigurer,让它扫描特定的包,自动帮我们成批地创建映射器。这样就大大减少了配置的工作量。

mybatis dao层这时候需要写注解
@Mapper和@Repository注解

它们的区别:
1.使用@mapper后,不需要在spring配置中设置扫描地址,通过mapper.xml里面的namespace属性对应相关的mapper类,spring将动态的生成Bean后注入到ServiceImpl中 ,即我们省去了在spring.xml中写对应的mapper接口的位置。
2.@repository则需要在Spring中配置扫描包地址,然后生成dao层的bean,之后被注入到ServiceImpl中

但是这样依旧会出现注解重复写,配置地址繁琐的问题,于是spring有这样的配置,解决了这个问题。

DAO接口所在包名,Spring会自动查找其下的类

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	<property name="basePackage" value="com.cn.hnust.dao" />
	<property name="sqlSessionFactoryBeanName" 
	          value="sqlSessionFactory">
	</property>
</bean>

与Spring集成可以分为3个步骤.

  1. 把Java类对应的Mapper接口类纳入Spring中的IOC容器管理。
  2. 把Java类对应的XML命名空间添加到Mybatis中的Configuration类中的mapperRegistry(用于管理Mybatis的Mapper).
  3. 使用Spring中的IOC容器扩展FactoryBean获取到Mapper的实例。(第一步纳入Spring只是接口)

说人话就是,你啥都省了,不需要你写更多的对应配置地址,注解,你只需要专注写接口就行。

但是,这样也是有坏处的,这样就不能用mybatis的方法,我所接触到的,是重写一个mybatis的基类,对mybatis进行一层的小包装,让我们省去了不使用spring整合的每次都要写sqlsession工厂才能调用方法。当然了这是我个人的一些自我总结,大家作为参考看哦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值