事件驱动设计可以有效降低模块间耦合度。
添加Rribbit依赖
<dependency> <groupId>org.rribbit</groupId> <artifactId>rribbit</artifactId> <version>2.7.0</version> <type>jar</type> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>3.0.5.RELEASE</version> </dependency>
配置Spring
<context:component-scan base-package="com.sipsd" /> <bean id="creator" class="org.rribbit.creation.SpringBeanClassBasedListenerObjectCreator"> <property name="packageNames"> <list> <value>com.sipsd</value> </list> </property> <property name="scanSubpackages" value="true" /> </bean> <bean id="rrb" class="org.rribbit.util.RRiBbitUtil" factory-method="createRequestResponseBusForLocalUse"> <constructor-arg ref="creator" /> <constructor-arg value="true" /> </bean>
Payment java to:
public class Payment implements Serializable { private static final long serialVersionUID = 7460614839664772877L; private String paymentId; private double amount; private String orderId; /** * @return the orderId */ public String getOrderId() { return orderId; } /** * @param orderId * the orderId to set */ public void setOrderId(String orderId) { this.orderId = orderId; } /** * @return the paymentId */ public String getPaymentId() { return paymentId; } /** * @param paymentId * the paymentId to set */ public void setPaymentId(String paymentId) { this.paymentId = paymentId; } /** * @return the amount */ public double getAmount() { return amount; } /** * @param amount * the amount to set */ public void setAmount(double amount) { this.amount = amount; } }
Payment Service Interface:
public interface PaymentService { @Listener(hint = "createPayment") public Payment createPayment(Payment p); }
Payment Service Implementation:
@Service("paymentService") public class PaymentServiceImpl implements PaymentService { @Override public Payment createPayment(Payment p) { System.out.println("create payment"); p.setAmount(90000); return p; } }
测试:
public class TestRbit { private RequestResponseBus rrb; @Autowired PaymentServiceImpl ps; public static void main(String[] args) { new TestRbit().testRribbit(); } private void testRribbit(){ ApplicationContext context = new ClassPathXmlApplicationContext( "rribbit-appContext.xml"); rrb = (RequestResponseBus) context.getBean("rrb"); Payment p = rrb.send("createPayment", new Payment()); System.out.println(p.getAmount()); } }
相关推荐
过驱动保护工具(过游戏驱动保护工具)过驱动保护工具(过游戏驱动保护工具)过驱动保护工具(过游戏驱动保护工具)过驱动保护工具(过游戏驱动保护工具)过驱动保护工具(过游戏驱动保护工具)过驱动保护工具(过...
MCGS脚本驱动开发工具,可以学习开发基于MCGS嵌入式组态软件相关的仪表驱动,可直接用MCGS触摸屏和仪表进行通讯交互。 脚本驱动是一种使用MCGS增强语言编写的设备驱动程序。 目的,是给用户提供一种与传统MCGS...
本教程将详细讲解MCGS脚本驱动开发工具的使用,帮助用户从初级到中级逐渐掌握其功能与应用。 1. **MCGS脚本驱动基础** MCGS中的脚本驱动是一种编程手段,允许用户通过编写脚本来实现对硬件设备的自定义控制。它...
需要注意的是,工厂驱动工具并非普通用户日常维护的必需品,只在特定问题下使用。在尝试安装前,最好先尝试常规的驱动更新或系统还原,以免对硬件造成不必要的影响。此外,误操作可能导致数据丢失,因此在操作前请...
使用MCGS脚本驱动工具,开发者可以实现诸如实时数据采集、设备状态监控、报警处理、数据记录等多种功能。例如,通过编写脚本,可以实现与PLC的双向通信,读取生产数据,根据预设条件触发控制逻辑,同时将数据可视化...
华为adb手机驱动工具是一款专为华为手机准备的驱动软件,想要使用这款驱动软件的用户赶紧来下载吧。 华为adb手机驱动工具简介: 华为adb驱动工具主要适用于华为系列的手机,一般需要在电脑上安装对应的adb驱动才...
USB3.0驱动导入工具是专门针对Windows 7操作系统设计的一款实用程序,旨在解决在安装Win7系统后无法正常识别或使用USB3.0设备的问题。由于Windows 7原生支持的是USB2.0标准,因此在安装该系统后,可能会出现USB3.0...
因此,内核模式驱动的调试需要更高级别的工具和技术,例如使用内核调试器如WinDbg。 驱动加载工具的工作流程通常包括以下步骤: 1. 检测驱动文件:工具首先会验证驱动文件的完整性,确保它是有效的PE(Portable ...
事件驱动型编程技术是嵌入式系统中常见的一种编程模型,尤其适用于实时性和响应速度要求高的应用。《嵌入式系统的事件驱动型编程技术 第二版》深入探讨了这一主题,为开发者提供了宝贵的理论知识和实践经验。 QP...
2. **实时监控**:该工具可以实时显示驱动的加载、卸载、初始化等关键事件,帮助开发者跟踪驱动在系统中的行为。 3. **调试信息**:当驱动程序出错时,DriverMonitor能提供详细的调试信息,包括错误代码、堆栈跟踪...
因此,使用专业的卸载工具可以确保驱动程序被完全移除,避免这些问题的发生。 “XPSRemovalTool.exe”很可能是这个工具的主要执行文件,它的名字暗示了它可能专门用于处理XPS(XML Paper Specification)相关的...
- **文档支持**:虽然没有直接提及,但通常开发版工具会伴随开发文档或教程,帮助用户理解如何正确使用工具和应对可能出现的问题。 总的来说,SkyIAR是解决AHCI驱动问题的实用工具,尤其对于经常进行系统部署和维护...
使用这个工具时,用户首先需要确保自己的系统满足工具的硬件和软件要求,例如兼容的操作系统、足够的存储空间以及正确的USB驱动等。然后,用户可以通过RTDTool.exe启动工具,连接到目标设备,选择合适的固件文件,并...
2. 签署驱动文件:工具会使用上述证书对sys驱动文件进行签名,添加必要的数字签名信息。 3. 验证签名:除了签署,工具可能还提供验证已签名驱动的功能,检查签名是否有效,确认驱动程序没有被篡改。 4. 策略配置:...
在本文中,我们将深入探讨MCGS脚本驱动开发工具的特点、用途以及如何使用。 一、MCGS脚本驱动概述 MCGS脚本驱动是MCGS系统的核心组件之一,它允许用户利用内置的脚本语言编写控制逻辑,实现对硬件设备的直接控制...
Driver Monitor是一款针对计算机硬件驱动程序管理的实用工具,它的主要功能是帮助用户监控、管理和更新系统中的驱动程序。驱动程序是操作系统与硬件设备之间的重要桥梁,确保设备能够正常工作。这款工具的出现,使得...
使用InstDrv工具,我们可以方便地进行该驱动的测试和调试,以确保其在不同环境下的稳定性和兼容性。 最后,"使用说明.txt"文件无疑是帮助用户更好地理解和使用该工具的关键。它通常会详细解释如何操作InstDrv,包括...
在压缩包内的“易语言SYS驱动文件安装加载启动工具源码”,表明这个工具是使用易语言开发的。易语言是一种中国本土化的编程语言,其语法简洁,适合初学者学习,同时也被广泛应用于系统工具和应用软件的开发。通过...