java单元测试调用mybatis接口并执行
今天想使用单元测试类,存储一些数据到mysql,可是,一直在报错,org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'locationService' available
检查了好久,实属无奈找不出问题,试了一下手动构造注入javabean,奇迹的解决了这个问题。

单元测试具体写法:
1.使用注解@Before 读取dao层的xml配置文件,,注意,必须是dao层,否则找不到mybatis的会话工厂

2.需要使用构造注入service层的接口实现类后,程序才可以获取mapper接口,,否则mapper接口实例后参数为null,会报空指针异常


3.构造注入的service层实现类 <bean> 必须写在dao层的xml文件里,不可以在其他xml里单独注入再获取Javabean,否则会报错误创建bean。
当然,如果真的想写在一个新的xml文件里,可以将新xml导入到dao层xml配置文件里。


dao层xml文件模板:
1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:context="http://www.springframework.org/schema/context"
5 xsi:schemaLocation="http://www.springframework.org/schema/beans
6 http://www.springframework.org/schema/beans/spring-beans.xsd
7 http://www.springframework.org/schema/context
8 http://www.springframework.org/schema/context/spring-context.xsd">
9 <!-- 1.配置数据库相关参数properties的属性:${url} -->
10 <context:property-placeholder location="classpath:jdbc.properties"/>
11
12 <!-- 配置 数据源 -->
13 <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
14 <!-- 驱动 -->
15 <property name="driverClassName" value="${jdbc.driverClassName}"/>
16 <!-- url -->
17 <property name="url" value="${jdbc.url}"/>
18 <!-- 用户名 -->
19 <property name="username" value="${jdbc.username}"/>
20 <!-- 密码 -->
21 <property name="password" value="${jdbc.password}"/>
22 </bean>
23
24 <!-- 配置 Mybatis的工厂 -->
25 <bean class="org.mybatis.spring.SqlSessionFactoryBean">
26 <!-- 数据源 -->
27 <property name="dataSource" ref="dataSource"/>
28 <!-- 配置Mybatis的核心 配置文件所在位置 -->
29 <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
30 <!-- 配置pojo别名 -->
31 <property name="typeAliasesPackage" value="cn.cen2guo.clinic.entity"/>
32 <!--当mapper中的接口文件与xml文件在同一个包下但是不在同一级时-->
33 <!--需要指定mapper 的xml文件路径,如果在同一级则可不写-->
34 <!-- 否则会报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)-->
35 <property name="mapperLocations" value="classpath:cn/cen2guo/clinic/mapper/mapperXML/*.xml"/>
36 </bean>
37
38 <!--扫描mapper接口, 写在此包下即可被扫描到 -->
39 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
40 <property name="basePackage" value="cn.cen2guo.clinic.mapper"/>
41 </bean>
42
43
44 <!-- 导入my_javabean.xml,用于自定义注册构造注入的bean-->
45 <import resource="classpath:myxml/my_javabean.xml"/>
46 </beans>
自定义注册bean的xml文件模板:
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://www.springframework.org/schema/beans
5 http://www.springframework.org/schema/beans/spring-beans.xsd">
6 <!-- 位置信息服务接口-->
7 <bean id="locationService" class="cn.cen2guo.clinic.service.serviceImpl.LocationServiceImpl"/>
8
9 </beans>
java单元测试调用mybatis接口并执行的更多相关文章
- java springboot调用第三方接口 借助hutoool工具类 爬坑
楼主是个后端小白一枚,之前没接触过后端,只学了java基本语法,还是在学校老师教的,学的很浅,什么ssh.ssm框架都没有学,最近在自学spring boot,看书学也看不是很懂,就在b站上看教学视频 ...
- java反射调用dubbo接口
需求:项目增加幂等 场景:1.三个项目:a .b.c2.a项目加幂等3.b项目dubbo调用项目a的时候超时没有获取返回结果,增加重试机制(非立即重试,3min or 5min 后重试)4.c项目是一 ...
- java如何调用webservice接口
java调用WebService可以直接使用Apache提供的axis.jar自己编写代码,或者利用Eclipse自动生成WebService Client代码,利用其中的Proxy类进行调用.理论上 ...
- java代码调用第三方接口
一.利用httpclient来字符串参数(url是第三方接口,不带参数,如:http://192.168.16.200:8081/faceInfo/list,param是url后面所要带的参数) pu ...
- python调用ansible接口API执行命令
python版本:Python 2.6.6 ansible版本:ansible 2.3.1.0 下载地址:https://releases.ansible.com/ansible/ 调用脚本 ...
- java中调用三方接口post传参时map和jsonobject的区别转换
post方法名及参数为:(具体方法可参考https://www.cnblogs.com/mufengforward/p/10510337.html) public static String doPo ...
- java程序调用.net接口服务地址的写法
参考文章:http://download.csdn.net/detail/davidiao/7424767 http://www.cnblogs.com/mq0036/p/3554002.html . ...
- Java 调用http接口(基于OkHttp的Http工具类方法示例)
目录 Java 调用http接口(基于OkHttp的Http工具类方法示例) OkHttp3 MAVEN依赖 Http get操作示例 Http Post操作示例 Http 超时控制 工具类示例 Ja ...
- Java调用第三方接口示范
在项目开发中经常会遇到调用第三方接口的情况,比如说调用第三方的天气预报接口. 使用流程[1]准备工作:在项目的工具包下导入HttpClientUtil这个工具类,或者也可以使用Spring框架的res ...
随机推荐
- Jenkins监控
目录 一.Monitoring插件 二.Prometheus监控 一.Monitoring插件 Monitoring插件(monitoring)使用JavaMelody,对Jenkins进行监控.插件 ...
- 自动化测试环境搭建之Python3.6+selenium44+firefox
推荐使用: Python3.6+selenium2.53.6+Firefox46以下 +[Chrome任意版本+对应版本webdriver] ----------------------------- ...
- 突出显示(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 当一个大的项目文件做好以后,查看全部内容,肉眼多少会有点吃不消,这时就需要"划重点".在Porect里 ...
- 前置任务(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 在[前置任务列]中编辑任务关联,这是个正经的设置. 说他"正经",是因为在[手动模式]下,这个设置也是 ...
- 统计函数(Excel函数集团)
此处文章均为本妖原创,供下载.学习.探讨! 文章下载源是Office365国内版1Driver,如有链接问题请联系我. 请勿用于商业! 谢谢 下载地址:https://officecommunity- ...
- 当更新user表时,页面没有的属性,执行update语句不会更改以前的值
当更新user表时,页面没有的属性,执行update语句不会更改数据库表的值.不会用NULL值去填充
- 移动端适配文件(引入scss)
把此下代码放入scss文件 使用时候引入scss文件 @charset "UTF-8"; $yh:"Microsoft yahei"; @function rm ...
- Spring学习(二)三种方式的依赖注入
1.前言 上一篇讲到第一个Spring项目的创建.以及bean的注入.当然.注入的方式一共有三种.本文将展开细说. 1.set注入:本质是通过set方法赋值 1.创建老师类和课程类 1.Course ...
- 【九度OJ】题目1177:查找 解题报告
[九度OJ]题目1177:查找 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1177 题目描述: 读入一组字符串(待操作的),再读入 ...
- 【LeetCode】856. Score of Parentheses 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 栈 递归 计数 日期 题目地址:https://le ...