您的位置:首页 > 编程语言 > Java开发

spring mvc+spring+mybatis+maven整合篇(一)

2015-10-20 21:49 507 查看
项目结构图:



    整合思路:

    1.使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件;

    2.将mybatis+spring进行整合;

    3.用spring-test的SpringJUnit4ClassRunner+Junit进行单元测试;

    4.将spring mvc+spring+mybatis进行整合;

    Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件。参考文章:http://www.cnblogs.com/smileberry/p/4145872.html

    在spring-mybatis.xml中配置通过动态代理生成Mapper的代理类:

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="sy.dao" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
      这里需要注意的是jar包冲突问题,比如我们在pom文件中配置是spring的3.2.0版本,而mybatis-spring依赖的是spring的3.1.1版本,我在搭建环境时一直报无法创建Mapper代理类的错误,解决了好长时间,最后发现是jar包冲突问题。



    通过上图我们可以发现我们配置的spring版本和mybatis-spring依赖的版本冲突,我们需要做的是统一为3.1.1版本,配置为如下图所示效果:



          使用SpringJUnit4ClassRunner+Junit进行单元测试,如果测试通过则可以进行下一步的工作。

package sy.test;

import org.apache.log4j.Logger;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import sy.model.User;
import sy.service.UserService;
import com.alibaba.fastjson.JSON;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:spring.xml",
"classpath:spring-mybatis.xml" })
public class TestMybatis {

private static final Logger logger = Logger.getLogger(TestMybatis.class);

private UserService userService;

@Test
public void test1() {
User user = userService.getUserById("1");
logger.info(JSON
.toJSONStringWithDateFormat(user, "yyyy-MM-dd hh:mm:ss"));
}

public UserService getUserservice() {
return userService;
}

@Autowired
public void setUserservice(UserService userservice) {
this.userService = userservice;
}
}
    越来越发现maven的强大,方便的为我们从中央仓库下载jar包,通过Dependency Hierarchy视图可以查看jar包的依赖关系及是否冲突,更重要的是在调试阶段还可以自动从中央仓库下载jar包的源码。

    关于spring mvc+spring+mybatis+maven的整合先到此,下一篇文章继续讲解spring mvc+spring+mybatis+maven的整合过程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: