Dubbo泛化实现
来源:互联网 发布:python 数据分析包 编辑:程序博客网 时间:2024/05/16 11:54
dubbo泛化实现方式主要用于服务器端没有API借口及横型类元的情况,参数及返回值中的所有POJO均使用Map表示,通常用于框架集成。比如:实现一个通用的远程服务,可通过实现GenenricService接口实现所有服务请求。
如如下服务实现:
package com.yncp.dubbo.service;import java.util.Date;import com.alibaba.dubbo.rpc.service.GenericException;import com.alibaba.dubbo.rpc.service.GenericService;public class IDubboGenService implements GenericService{ public Object $invoke(String method, String[] parameterTypes, Object[] args) throws GenericException { System.out.println("方法:"+method); System.out.println("parameterTypes:"); for (Object type : parameterTypes) { System.out.println("\t"+type); } System.out.println("args:"); for (Object arg : args) { System.out.println("\t"+arg); } System.out.println("args:"+args); return new Date(); }}
dubbo.xml配置:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <!-- 指定web服务名字 --> <dubbo:application name="DubboGen"/> <!-- 声明服务注册中心 --> <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"/> <!-- 指定传输层通信协议 --> <dubbo:protocol name="dubbo" port="20880"/> <!-- 暴露你的服务地址 --> <dubbo:service ref="dubboGenService" interface="com.yncp.dubbo.service.IDubboGenService" protocol="dubbo" /> </beans>
客户端实现代码如下:
package com.yncp.dubbo.entity;public class User { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
package com.yncp.dubbo.service;import com.yncp.dubbo.entity.User;public interface IDubboGenService { public Object sum(int x,int y); public Object saveUser(User user);}
import java.io.IOException;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.yncp.dubbo.entity.User;import com.yncp.dubbo.service.IDubboGenService;public class DubboStart { public static void main(String[] args) throws IOException { ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml"); IDubboGenService dubboGenService=(IDubboGenService) ctx.getBean("dubboGenService"); Object date= dubboGenService.sum(1, 3); System.out.println(date.toString()); User user=new User(); user.setId(1); user.setName("张三"); Object obj= dubboGenService.saveUser(user); System.out.println(obj.toString()); }}
dubbo.xml配置:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <!-- 指定web服务名字 --> <dubbo:application name="DubboGen_ref"/> <!-- 声明服务注册中心 --> <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"/> <!-- 指定传输层通信协议 --> <dubbo:protocol name="dubbo" port="20881"/> <dubbo:protocol name="rmi" port="1010"/> <!-- 暴露你的服务地址 --> <dubbo:reference id="dubboGenService" interface="com.yncp.dubbo.service.IDubboGenService" protocol="dubbo" > </dubbo:reference> </beans>
0 0
- Dubbo泛化实现
- 11.dubbo结果缓存、泛化引用、泛化实现
- Dubbo-泛化引用
- Dubbo泛化引用
- DUBBO 泛化调用
- dubbo泛化调用
- dubbo泛化调用和泛化引用
- dubbo泛化处理(转)
- dubbo泛化调用 http接口 随意调用dubbo服务
- dubbo实现
- UML------依赖、泛化、实现、聚合、组合、关联
- (泛化,实现,依赖,关联(聚合,组合))
- 泛化、实现、依赖和关联的区别
- UML依赖、泛化、关联、聚合、组合、实现
- 泛化、实现、依赖和关联的区别
- 类之间关系-依赖、关联、实现、泛化
- UML: 依赖,泛化,关联,聚合,组合,实现
- hsf dubbo学习六--泛化,回声测试,上下文信息,隐式传参,异步调用,本地调用
- If-else statement----java
- 高通Quick Charge 2.0从入门到精通
- hdu3068 最长回文
- C#入门7.5——遍历数组
- Android的事件分发机制
- Dubbo泛化实现
- HDU 5808 Price List Strike Back(整体二分)
- 本地化,多语言
- onSaveInstanceState()和onRestoreInstanceState()方法
- OC用AFN做Soap请求webService
- PHP语法学习第一课
- WDCP管理面板更换8080端口 确保登录入口安全
- 为什么c++要引入友元函数?
- Map集合中查询人的银行卡信息