今天想使用单元测试类,存储一些数据到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接口并执行的更多相关文章

  1. java springboot调用第三方接口 借助hutoool工具类 爬坑

    楼主是个后端小白一枚,之前没接触过后端,只学了java基本语法,还是在学校老师教的,学的很浅,什么ssh.ssm框架都没有学,最近在自学spring boot,看书学也看不是很懂,就在b站上看教学视频 ...

  2. java反射调用dubbo接口

    需求:项目增加幂等 场景:1.三个项目:a .b.c2.a项目加幂等3.b项目dubbo调用项目a的时候超时没有获取返回结果,增加重试机制(非立即重试,3min or 5min 后重试)4.c项目是一 ...

  3. java如何调用webservice接口

    java调用WebService可以直接使用Apache提供的axis.jar自己编写代码,或者利用Eclipse自动生成WebService Client代码,利用其中的Proxy类进行调用.理论上 ...

  4. java代码调用第三方接口

    一.利用httpclient来字符串参数(url是第三方接口,不带参数,如:http://192.168.16.200:8081/faceInfo/list,param是url后面所要带的参数) pu ...

  5. python调用ansible接口API执行命令

    python版本:Python 2.6.6 ansible版本:ansible 2.3.1.0      下载地址:https://releases.ansible.com/ansible/ 调用脚本 ...

  6. java中调用三方接口post传参时map和jsonobject的区别转换

    post方法名及参数为:(具体方法可参考https://www.cnblogs.com/mufengforward/p/10510337.html) public static String doPo ...

  7. java程序调用.net接口服务地址的写法

    参考文章:http://download.csdn.net/detail/davidiao/7424767 http://www.cnblogs.com/mq0036/p/3554002.html . ...

  8. Java 调用http接口(基于OkHttp的Http工具类方法示例)

    目录 Java 调用http接口(基于OkHttp的Http工具类方法示例) OkHttp3 MAVEN依赖 Http get操作示例 Http Post操作示例 Http 超时控制 工具类示例 Ja ...

  9. Java调用第三方接口示范

    在项目开发中经常会遇到调用第三方接口的情况,比如说调用第三方的天气预报接口. 使用流程[1]准备工作:在项目的工具包下导入HttpClientUtil这个工具类,或者也可以使用Spring框架的res ...

随机推荐

  1. [源码解析] PyTorch 分布式(16) --- 使用异步执行实现批处理 RPC

    [源码解析] PyTorch 分布式(16) --- 使用异步执行实现批处理 RPC 目录 [源码解析] PyTorch 分布式(16) --- 使用异步执行实现批处理 RPC 0x00 摘要 0x0 ...

  2. 转:StoryBoard快速上手

    由于最近才接触到IOS,苹果已经建议storyboard来搭建所有界面了,于是我也追随时尚,直接开始使用storyboard.(不料在涉及到页 面跳转的时候,遇到的问题是:点击后没有任何反应)众所周知 ...

  3. 筛选Table.SelectRows-日期与时间(Power Query 之 M 语言)

    数据源: 包含日期与时间的任意数据 目标: 对日期与时间进行筛选 M公式: = Table.SelectRows( 表,筛选条件) 筛选条件: 等于:each [日期列] = #date(年,月,日) ...

  4. AtCoder Beginner Contest 172 题解

    AtCoder Beginner Contest 172 题解 目录 AtCoder Beginner Contest 172 题解 A - Calc B - Minor Change C - Tsu ...

  5. 一文详解TDSQL PG版Oracle兼容性实践

    TDSQL PG版分布式关系型数据库,是一款同时面向在线事务交易和MPP实时数据分析的高性能HTAP数据库系统.面对应用业务产生的不定性数据爆炸需求,不管是高并发交易还是海量实时数据分析,TDSQL ...

  6. Centos7使用Docker启动elasticsearch服务秒退

    首先查看docker启动日志 docker logs -f 容器id 查看报错信息 OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepG ...

  7. git修改账号密码

    查看当前用户名和邮箱 git config user.name git config user.email 修改 git config --global user.name "新用户名&qu ...

  8. 【linux】环境变量生命周期的操作方式

    目录 前言 1. 修改环境变量 1.1 手动指定 1.2 临时生效 1.3 永久生效 链接 前言 参考: 李柱明博客 本文主要记录 linux 环境变量配置的生命周期. 如,修改环境变量 PATH 是 ...

  9. LeetCode每日一题打卡组队监督!刷题群!

    近 2000 人已经加入共同刷题啦! 群友每天都会在群里给大家讲解算法题 每周日「负雪明烛」组织直播讲题 我相信来看我博客的大部分人都是通过LeetCode刷题过来的.最近发现LeetCode中文网站 ...

  10. 【LeetCode】157. Read N Characters Given Read4 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 直接调用 日期 题目地址:https://leetco ...