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/