代码改变世界

总结Struts2+Spring+MyBaties整合(二)

2014-01-13 17:15  _cha1R  阅读(429)  评论(0编辑  收藏  举报

第一篇文章 总结Struts2+Spring+MyBaties整合 里说到,“接口方面,之前学习MyBaties时是写了Mapper接口来映射方法。这里不再使用”。后来再深入研究了一下,发现还是需要使用这个Mapper接口,因为Spring对它作了很好的支持。

在Spring-mybatis的 官方中文文档 里第六章说到,在spring的配置文件里可以配置一个接口映射器。其中我总结出一个比较方便的配置方式:

    <!-- 配置注入映射器 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="cn.tanjiay.mbt.mapper" />
    </bean>

 

在org.mybatis.spring.mapper.MapperScannerConfigurer里,有一个basePackage的属性我们可以配置,配置后它会自动扫描 这个值所表示的包下的Mapper接口。

而除了配上这个之外,还需要把model的映射文件里的namespace配置为接口的路径

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.tanjiay.mbt.mapper.StudentMapper">
  ...
</..>

这样Spring就会自动管理这个接口的实例,在需要使用它的时候直接注入就行了。

    @Resource
    private UserMapper userMapper;
    public User getFromUsernameAndPassword(String username, String password) {
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("username", username);
        map.put("password", password);
        return userMapper.getFromUsernameAndPassword(map);
    }

.