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/
分享到:
相关推荐
其他分布式组件可以通过相同的接口消费这个服务,实现远程调用。 7. **测试和部署**:测试Web服务的正确性,确保所有功能正常工作。然后,将应用部署到目标环境中,确保所有依赖项如数据库和网络服务都已准备就绪。...
- AOP:动态代理和CGLIB都是实现AOP的关键工具,用于在方法执行前后插入额外的行为。 - 服务调用:在分布式系统中,动态代理可以用来模拟远程服务调用,比如RMI或HTTP。 - 测试:在单元测试中,动态代理可以模拟复杂...
26. DWR(Direct Web Remoting):直接Web远程调用,允许JavaScript直接调用Java方法,简化Web应用的开发。 27. DTD(Document Type Definition):文档类型定义,为XML文档定义一套规则,确保文档结构的合法性。 ...
11. RMI(Remote Method Invocation):RMI允许Java对象在不同的JVM之间进行远程方法调用,是分布式计算的基础。 12. CVS和SVN:CVS和SVN是版本控制系统,用于管理项目源代码的历史版本,便于团队协作和代码回溯。 ...
- 比如,在分布式服务环境中,代理模式可以用于实现远程调用,如RMI、Dubbo等。 6. **示例代码**: - 创建一个简单的JDK动态代理,包括自定义InvocationHandler和使用Proxy生成代理对象的代码。 - 展示Spring ...
12. RMI (Remote Method Invocation):远程方法调用,允许Java对象在不同的JVM之间进行通信。 13. TDD (Test-Driven Development):测试驱动开发,先编写测试,再编写实现代码,确保代码质量。 14. HTTP ...
4. 整合其他技术:Spring框架设计为模块化,可以轻松集成其他技术,如数据访问(JDBC、Hibernate、MyBatis)、事务管理、Web应用(MVC)、远程服务(RMI、Hessian)等。 总结,Spring框架的初始化过程主要包括XML/...
3. **Proxy**:提供了基于JDK动态代理和CGLIB的接口代理实现。 4. **Cluster**:负责将多个服务提供者实例进行聚合,实现负载均衡。 5. **Router**:定义了服务路由规则,可以根据条件选择不同的服务提供者。 6. **...
12. **RMI (Remote Method Invocation)**:RMI允许JAVA对象在不同的JVM之间进行远程调用,支持分布式计算。 13. **CVS (Concurrent Versions System), SVN (Subversion)**:这两个都是版本控制系统,用于跟踪文件和...
总结,Dubbo 2.5.7的源码包含了服务治理的核心组件和机制,从服务的暴露与引用,到RPC调用的全生命周期管理,再到服务治理的各个层面,都体现了Dubbo的设计理念与技术实力。通过深入研究这些源码,我们可以更深入地...
7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对接口进行代理 7.5.5. 对类进行代理 7.5.6. 使用“全局”通知器 7.6. 简化代理定义 7.7. 使用ProxyFactory通过编程创建AOP代理 7.8. 操作被通知对象 7.9. 使用“自动...
7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对接口进行代理 7.5.5. 对类进行代理 7.5.6. 使用“全局”通知器 7.6. 简化代理定义 7.7. 使用ProxyFactory通过编程创建AOP代理 7.8. 操作被通知对象 7.9. 使用“自动...
17.3. 使用Hessian或者Burlap通过HTTP远程调用服务 17.3.1. 为Hessian配置DispatcherServlet 17.3.2. 使用HessianServiceExporter暴露你的bean 17.3.3. 客户端连接服务 17.3.4. 使用Burlap 17.3.5. 对通过...
7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对接口进行代理 7.5.5. 对类进行代理 7.5.6. 使用“全局”advisor 7.6. 简化代理定义 7.7. 使用ProxyFactory通过编程创建AOP代理 7.8. 操作被通知对象 7.9. 使用“自动代理...
17.3. 使用Hessian或者Burlap通过HTTP远程调用服务 17.3.1. 为Hessian配置DispatcherServlet 17.3.2. 使用HessianServiceExporter暴露你的bean 17.3.3. 客户端连接服务 17.3.4. 使用Burlap 17.3.5. 对通过...
此库为远程调用提供了支持,例如EJB、JMS、RMI、Hessian、Burlap、HttpInvoker、JAX-RPC等远程服务调用方式。对于需要实现分布式应用的服务交互来说,这是一个非常有用的库。 ##### (10) spring-support.jar 该库为...
- **应用场景**:适用于需要实现远程调用功能的项目。 - **依赖关系**:依赖于 `spring-core.jar`、`spring-beans.jar`、`spring-aop.jar`、`spring-dao.jar`、`spring-context.jar`、`spring-web.jar` 和 `spring-...