`
wwwxxx286
  • 浏览: 50308 次
  • 性别: 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脚本驱动开发工具 使用教程 以及软件

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

    mcgs脚本驱动工具

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

    事件驱动模型实例详解(Java篇)

    在Java中,事件驱动模型的应用主要体现在Swing框架上,它是Java中用于构建桌面应用程序的标准工具包。Swing提供了丰富的预置组件,如按钮(`JButton`)、单选按钮(`JRadioButton`)等,用于创建动态、响应式的用户...

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

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

    驱动加载工具

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

    打印机驱动卸载工具

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

    清除打印机驱动小工具

    在IT领域,打印机驱动程序是连接物理打印机与操作系统的关键组件,它们使得计算机能够理解并执行打印指令。...不过,为了保障数据安全,建议在操作前备份重要文件,并在使用任何驱动清理工具时谨慎行事。

    TP900S工具和驱动文件2.0_TP900usb驱动_振中驱动_振中900驱动_振中900驱动_振中TP900s驱动及工具_源

    确保驱动安装完成后,用户可以通过USB接口将TP900S设备连接到电脑,使用提供的工具进行程序烧录或其他操作。在整个过程中,用户应遵循安全的操作流程,避免设备损坏或数据丢失。 总的来说,这个软件包是振中TP900S...

    RTD2556驱动工具

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

    sys驱动签名工具.zip

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

    SkyIAR,AHCI驱动导入工具

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

    Driver Monitor驱动加载工具.zip

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

    郁金香驱动工具包

    郁金香驱动工具包是一系列用于驱动程序调试和系统分析的实用工具集合,这些工具在IT专业人士和开发者中被广泛使用。以下是对每个工具的详细解释: 1. **DebugView**:DebugView是由微软开发的一个非常有用的调试...

    pe&xp整合SCSI驱动工具

    "PE&XP整合SCSI驱动工具"是一款专为Windows PE(预安装环境)和Windows XP设计的实用程序,主要用于在这些系统中管理和整合SCSI驱动。SCSI(小型计算机系统接口)是一种高速数据传输标准,广泛应用于服务器和工作站...

    android9.0-10.0安卓驱动工具

    3. 使用驱动工具的步骤: - 连接设备:使用USB线将手机连接到电脑,开启USB调试模式。 - 检测设备:驱动工具会自动识别设备型号和当前系统版本。 - 安装缺失驱动:工具会检测缺少的驱动并提供下载或安装选项。 -...

    usb驱动加载工具

    3. **即插即用支持**:对于支持即插即用的USB设备,工具能够快速响应设备插入和拔出事件,自动加载或卸载相应的驱动,确保设备随时可用。 4. **驱动调试**:对于开发和测试人员,这类工具提供了方便的驱动调试功能...

    驱动部署工具V3+驱动删除询问工具

    驱动部署和管理是IT系统维护中的重要环节,尤其在企业环境中,确保...同时,这两款工具的组合使用还能降低由于驱动问题导致的故障率,提高整个IT基础设施的可靠性。在日常工作中,它们是IT专业人士不可或缺的得力助手。

    驱动工具集,很实用的一个工具

    这对于理解系统如何管理和使用对象,如文件、事件、进程和线程等,非常有帮助。通过WinObj,开发者可以深入洞察系统内部的运作。 EzDriverInstaller.exe可能是一个简易的驱动安装工具,它简化了驱动程序的安装过程...

    64位驱动加载工具

    3. **驱动安装**:一旦验证通过,工具会将驱动程序安装到系统中,更新设备驱动库,并配置系统以使用新驱动。 4. **驱动更新**:工具可能还具备自动或手动更新驱动的功能,以保持硬件设备的最新状态,提高性能和稳定...

Global site tag (gtag.js) - Google Analytics