`
wwwxxx286
  • 浏览: 50676 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

事件驱动工具RRibbit使用

    博客分类:
  • Java
阅读更多

事件驱动设计可以有效降低模块间耦合度。

 

添加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());
	}
}

 

 

0
1
分享到:
评论
1 楼 geeksun 2015-08-01  
按照代码运行的结果是空指针,方便给一份完整的代码出来吗?

相关推荐

    过驱动保护工具(过游戏驱动保护工具)

    过驱动保护工具(过游戏驱动保护工具)过驱动保护工具(过游戏驱动保护工具)过驱动保护工具(过游戏驱动保护工具)过驱动保护工具(过游戏驱动保护工具)过驱动保护工具(过游戏驱动保护工具)过驱动保护工具(过...

    MCGS脚本驱动开发工具使用指导手册.zip_MCGS 驱动开发_MCGS脚本编写_MCGS脚本驱动开发工具使用指导手册_mc

    MCGS脚本驱动开发工具,可以学习开发基于MCGS嵌入式组态软件相关的仪表驱动,可直接用MCGS触摸屏和仪表进行通讯交互。 脚本驱动是一种使用MCGS增强语言编写的设备驱动程序。 目的,是给用户提供一种与传统MCGS...

    MCGS脚本驱动开发工具 使用教程 以及软件

    本教程将详细讲解MCGS脚本驱动开发工具的使用,帮助用户从初级到中级逐渐掌握其功能与应用。 1. **MCGS脚本驱动基础** MCGS中的脚本驱动是一种编程手段,允许用户通过编写脚本来实现对硬件设备的自定义控制。它...

    [慧荣] 工厂驱动工具+SMI慧荣工厂驱动安装方法

    需要注意的是,工厂驱动工具并非普通用户日常维护的必需品,只在特定问题下使用。在尝试安装前,最好先尝试常规的驱动更新或系统还原,以免对硬件造成不必要的影响。此外,误操作可能导致数据丢失,因此在操作前请...

    mcgs脚本驱动工具

    使用MCGS脚本驱动工具,开发者可以实现诸如实时数据采集、设备状态监控、报警处理、数据记录等多种功能。例如,通过编写脚本,可以实现与PLC的双向通信,读取生产数据,根据预设条件触发控制逻辑,同时将数据可视化...

    华为adb手机驱动工具 官方版

    华为adb手机驱动工具是一款专为华为手机准备的驱动软件,想要使用这款驱动软件的用户赶紧来下载吧。 华为adb手机驱动工具简介: 华为adb驱动工具主要适用于华为系列的手机,一般需要在电脑上安装对应的adb驱动才...

    USB3.0驱动导入工具(PE下使用)

    USB3.0驱动导入工具是专门针对Windows 7操作系统设计的一款实用程序,旨在解决在安装Win7系统后无法正常识别或使用USB3.0设备的问题。由于Windows 7原生支持的是USB2.0标准,因此在安装该系统后,可能会出现USB3.0...

    驱动加载工具

    因此,内核模式驱动的调试需要更高级别的工具和技术,例如使用内核调试器如WinDbg。 驱动加载工具的工作流程通常包括以下步骤: 1. 检测驱动文件:工具首先会验证驱动文件的完整性,确保它是有效的PE(Portable ...

    嵌入式系统的事件驱动型编程技术 第二版(中文)

    事件驱动型编程技术是嵌入式系统中常见的一种编程模型,尤其适用于实时性和响应速度要求高的应用。《嵌入式系统的事件驱动型编程技术 第二版》深入探讨了这一主题,为开发者提供了宝贵的理论知识和实践经验。 QP...

    Windows驱动加载工具DriverMonitor

    2. **实时监控**:该工具可以实时显示驱动的加载、卸载、初始化等关键事件,帮助开发者跟踪驱动在系统中的行为。 3. **调试信息**:当驱动程序出错时,DriverMonitor能提供详细的调试信息,包括错误代码、堆栈跟踪...

    打印机驱动卸载工具

    因此,使用专业的卸载工具可以确保驱动程序被完全移除,避免这些问题的发生。 “XPSRemovalTool.exe”很可能是这个工具的主要执行文件,它的名字暗示了它可能专门用于处理XPS(XML Paper Specification)相关的...

    SkyIAR,AHCI驱动导入工具

    - **文档支持**:虽然没有直接提及,但通常开发版工具会伴随开发文档或教程,帮助用户理解如何正确使用工具和应对可能出现的问题。 总的来说,SkyIAR是解决AHCI驱动问题的实用工具,尤其对于经常进行系统部署和维护...

    RTD2556驱动工具

    使用这个工具时,用户首先需要确保自己的系统满足工具的硬件和软件要求,例如兼容的操作系统、足够的存储空间以及正确的USB驱动等。然后,用户可以通过RTDTool.exe启动工具,连接到目标设备,选择合适的固件文件,并...

    sys驱动签名工具.zip

    2. 签署驱动文件:工具会使用上述证书对sys驱动文件进行签名,添加必要的数字签名信息。 3. 验证签名:除了签署,工具可能还提供验证已签名驱动的功能,检查签名是否有效,确认驱动程序没有被篡改。 4. 策略配置:...

    MCGS_脚本驱动开发工具

    在本文中,我们将深入探讨MCGS脚本驱动开发工具的特点、用途以及如何使用。 一、MCGS脚本驱动概述 MCGS脚本驱动是MCGS系统的核心组件之一,它允许用户利用内置的脚本语言编写控制逻辑,实现对硬件设备的直接控制...

    Driver Monitor驱动加载工具.zip

    Driver Monitor是一款针对计算机硬件驱动程序管理的实用工具,它的主要功能是帮助用户监控、管理和更新系统中的驱动程序。驱动程序是操作系统与硬件设备之间的重要桥梁,确保设备能够正常工作。这款工具的出现,使得...

    InstDrv驱动加载工具1.3版本,亲测

    使用InstDrv工具,我们可以方便地进行该驱动的测试和调试,以确保其在不同环境下的稳定性和兼容性。 最后,"使用说明.txt"文件无疑是帮助用户更好地理解和使用该工具的关键。它通常会详细解释如何操作InstDrv,包括...

    SYS驱动文件安装加载启动工具.rar

    在压缩包内的“易语言SYS驱动文件安装加载启动工具源码”,表明这个工具是使用易语言开发的。易语言是一种中国本土化的编程语言,其语法简洁,适合初学者学习,同时也被广泛应用于系统工具和应用软件的开发。通过...

Global site tag (gtag.js) - Google Analytics