zoukankan      html  css  js  c++  java
  • SSM项目使用junit单元测试时Mybaties通配符加载Mapper不能正常加载


    个人博客 地址:http://www.wenhaofan.com/article/20181108104133

    问题描述

        项目使用maven build 以及tomcat run能够正常运行,但是使用junit单元测试时却报如下错误

    Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for CommonTermTeacherMapper.listOwnTerm

       猜测是mybaties mapper未能正常加载,本项目的mapper加载配置如下

    <!-- 本项目数据源代码 -->
    <bean id="sqlSessionFactory"
    	class="org.mybatis.spring.SqlSessionFactoryBean">
    	<property name="dataSource" ref="dataSource" />
    	<!-- 显式指定Mapper文件位置 -->
        <property name="configLocation"
    	    value="classpath:/SqlMapConfig.xml" />
        <!-- 通配符指定Mapper.xml -->
        <property name="mapperLocations">
    	    <array>
    		    <value>classpath:/mybatis/**/*Mapper.xml</value>
    		    <value>classpath:/**/*Mapper.xml</value>
    	    </array>
        </property>
    <!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->
    	
    </bean>

    解决方案

        猜测junit的运行时的classpath信息与普通运行方式不同,于是将classpath修改为classpth*,使其从多个classpath中加载mapper文件

        修改后的代码如下

    	<!-- 本项目数据源代码 -->
    	<bean id="sqlSessionFactory"
    		class="org.mybatis.spring.SqlSessionFactoryBean">
    		<property name="dataSource" ref="dataSource" />
    		<!-- 显式指定Mapper文件位置 -->
    	<property name="configLocation"
    		value="classpath*:/SqlMapConfig.xml" />
    	<!-- 通配符指定Mapper.xml -->
    	<property name="mapperLocations">
    		<array>
    			<value>classpath*:/mybatis/**/*Mapper.xml</value>
    			<value>classpath*:/**/*Mapper.xml</value>
    		</array>
    	</property>
    	</bean>

    此时junit即可正常加载运行,需要注意的是在线上环境的时候尽量将*去掉,提高检索效率

    具体细节目前不再深究 项目进度重要,日后有空再来研究

  • 相关阅读:
    Welcome-to-Swift-12附属脚本(Subscripts)
    Summarization of Tech Interviews
    How to Conduct High-Impact Research and Produce High-Quality Papers
    ZVAL——PHP源码分析
    个人使命
    习题-机器学习-西瓜书-周志华
    Machine Learning
    《踏踏实实学英语》读书笔记
    TF-IDF原理与实现
    线性代数学习感悟
  • 原文地址:https://www.cnblogs.com/fanwenhao/p/10020252.html
Copyright © 2011-2022 走看看