myBatis3与spring整合之注入映射器(1)
----------
MyBatis-Spring允许你在Service Bean中注入映射器。当使用映射器时,就像调用DAO那样来调用映射器就可以了,但是此时你就不需要进行任何DAO实现的编码,因为MyBatis会为你进行。
使用注入的映射器,你的代码就不会出现任何MyBatis-Spring依赖和MyBatis依赖。在我们的应用中有这样一个简单的映射器。你也应该知道映射器仅仅是一个接口:
public interface UserMapper {
User getUser(String userId);
}
这是你使用MyBatis-Spring来创建映射器的方式:
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> <property name="mapperInterface" value="sample.UserMapper" /> </bean>
现在你的映射器已经准备在Service对象中注入了:
<bean id="fooService" class="sample.FooServiceImpl">
<property name="userMapper" ref="userMapper"/>
</bean>
注:映射器接口全类名与映射器xml配置文件的namespace是对应的。
关于MapperFactoryBean
MapperFactoryBean创建的代理类实现了映射器接口(如上例:UserMapper),并且注入到应用程序中。因为代理创建在运行环境中,那么指定的映射器必须是一个接口。而不是一个具体的实现类。