天天看點

使用rmi協定,基于cglib實作元件管理和遠端方法調用

bbossgroups項目中提供的一套非常簡潔但是功能卻很豐富的aop架構,本文介紹如何使用使用rmi協定、基于cglib實作元件管理和遠端方法調用。

元件配置org/frameworkset/spi/cglib/service-bean-assemble.xml

<properties>
	<property id="cglibbean" singlable="true"  class="org.frameworkset.spi.cglib.CGLibService" />
</properties>      

元件實作類:

package org.frameworkset.spi.cglib;


/**
 * <p>Title: CGLibService.java</p> 
 * <p>Description: </p>
 * <p>bboss workgroup</p>
 * <p>Copyright (c) 2007</p>
 * @Date 2010-6-21 上午10:31:54
 * @author biaoping.yin
 * @version 1.0
 */
public class CGLibService {
	
	public String sayhello(String name)
	{
		System.out.println("remote from "+ name);
		return "Hello," + name;
	}

}      

測試用例:

package org.frameworkset.spi.cglib;

import org.frameworkset.spi.ApplicationContext;
import org.junit.Test;

/**
 * <p>Title: CGLibTest.java</p> 
 * <p>Description: </p>
 * <p>bboss workgroup</p>
 * <p>Copyright (c) 2007</p>
 * @Date 2010-6-21 上午10:30:57
 * @author biaoping.yin
 * @version 1.0
 */
public class CGLibTest {
	static ApplicationContext context_provider = ApplicationContext.getApplicationContext("org/frameworkset/spi/cglib/service-bean-assemble.xml");
	@Test
	public void test()
	{
		//遠端調用
		CGLibService service = (CGLibService)context_provider.getBeanObject("(rmi::172.16.17.216:1099)/cglibbean");
		System.out.println(service.sayhello("多多"));
	}
	
	
	@Test
	public void localtest()
	{
		//本地調用
		CGLibService service = (CGLibService)context_provider.getBeanObject("cglibbean");
		System.out.println(service.sayhello("多多"));
	}

}      

可到sourceforge下載下傳最新版本bbossgroups-2.0-RC1,下載下傳位址:

http://sourceforge.net/projects/bboss/files/

繼續閱讀