SOA下的MOCK接口
来源:互联网 发布:js json特殊字符处理 编辑:程序博客网 时间:2024/05/22 03:27
现在都在讲SOA,很多公司也是这么做的,这样做的好处我就不再这里重复了。SOA带来这些优点的同时也带来了很大的困扰,特别是在开发环境下,接口不稳定、频频挂掉,有时开发环境不如线上的数据那么丰富,想要的数据要不到,严重影响开发的进程。这种痛苦,想想就泪两行。哭归哭,哭够了,就得想一个下次不哭的方法。
在考虑解决方案时,我想尽可能的简单,尽可能的不侵入代码,于是想来想去,就下定决心要用配置的方式。在死了N多脑细胞的时候,我终于想到,下面就是我的方案,使用的是spring的注入机制。
1. 项目结构如下:
项目结构的关键是mock和线上的接口除了上一级包之外都是一致的,这样就可以通过配置包名称注入不同的类
2. 接口如下:
public interface InterfaceService { String mockInterface();}
3. 接口实现如下:
mock的接口:
public class InterfaceServiceImpl implements InterfaceService { @Override public String mockInterface() { return "这是一个mock的接口"; }}
正式的接口
public class InterfaceServiceImpl implements InterfaceService { @Override public String mockInterface() { return "这是一个线上的接口"; }}
4. 配置文件(这个是重点):
<bean id="interfaceService" class="com.xten.mock.service.${interface_type}.InterfaceServiceImpl"></bean>
这个的关键是将他的上一层包通过配置文件进行配置,那么就可以很简单的切换接口的环境,又不侵入到业务逻辑。
正式环境配置:interface_type=impl
mock环境配置:interface_type=mock
5. 测试用例如下:
public class MockTest { public static void main(String[] args){ try { ApplicationContext context = new ClassPathXmlApplicationContext("spring/mock/mock.xml"); InterfaceService interfaceService =context.getBean(InterfaceService.class); System.out.println(interfaceService.mockInterface()); } catch (BeansException e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } }}
各位可以自行测试一下。
0 0
- SOA下的MOCK接口
- Python 下的Mock...
- 前端虚拟接口---mock的用法
- charles mock 接口异常
- RPC接口mock测试
- rpc接口mock平台
- 接口的另一用法-构建单元测试的Mock对象
- 单元测试学习: mock有复杂行为的接口
- Jmockit对接口与基类的mock
- 前后端分离-mock接口的功与过
- SOA浪潮下的机遇
- SOA浪潮下的BPM
- SOA浪潮下的BPM
- [UnitTest05]-Mock多个接口
- 接口测试webserver mock编写
- 接口测试tcp mock编写
- Net平台下的Mock工具---Rhino Mocks
- Net平台下的Mock工具---Rhino Mocks
- STL源码—list transfer merge reverse(TT)
- nio选择器
- Targets
- Qt浅谈之内置标准对话框
- STL源码—deque(TT)
- SOA下的MOCK接口
- 2015新的开始
- [leetcode 95] Unique Binary Search Trees II
- 推荐系统好的开源项目列表
- X86反汇编简要说明
- x86架构下的系统段描述符格式
- poj解题报告——3080
- Qt浅谈之电子时钟
- JS设置超时时将被挂起