egova_invoker 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
egova_invoker 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: Apache 2.0
开发语言: Java 查看源码 »
操作系统: 跨平台
收录时间: 2016-07-14

基于Spring的HttpInvoker实现改写

服务器端调用:    HttpInvoker.invoker 方法,设置InvokerProcess处理

客户端调用:    ProxyFactory.proxy 方法,生成接口的代理对象,直接调用方法

客户端和服务器端的接口和实体类要一致,实体类必须是可以序列化的

比如:

定义Bean:

   public class DemoBean implements java.io.Serializable{
        /**
         * 
         */
        private static final long serialVersionUID = -5401380996187961689L;
        private String name;
        private String passWork;
        //省略get,set
    }

定义接口:

  public interface DemoService {
        public DemoBean  doTest(DemoBean bean);
    }

客户端调用:

  import com.egova.rpc.proxy.ProxyFactory;
    public class ClientDemo {
        public static void main(String[] args) {
            String bindUrl = "服务器端请求地址/egova_invoker/invoker";
            DemoService demoService = ProxyFactory.proxy(DemoService.class, bindUrl);
            DemoBean  demo = new DemoBean();
            DemoBean  value = demoService.doTest(demo);
            System.out.println(value);
        }
    }

服务端处理:

 import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import com.egova.rpc.remote.HttpInvoker;
    import com.egova.rpc.remote.InvokerProcess;
    import com.egova.rpc.support.RemoteInvocation;
    @Controller
    @RequestMapping(value="/egova_invoker")
    public class ServerDemo{
        @RequestMapping(value="invoker")
        public void invoker(HttpServletRequest request, HttpServletResponse  response) {
            HttpInvoker.invoker(request, response, new InvokerProcess(){
                public Object process(RemoteInvocation invocation){
                    //获取targetObject,即接口invocation.getInterfaceClazz()实现类
                    Object targetObject = new Object();
                    invocation.invoke(targetObject);
                }
            });
        }
    }
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

egova_invoker 的相关资讯

还没有任何资讯

egova_invoker 的相关博客

hdu 6739 Invoker

Invoker Problem Description 在 dota2 中有一个叫做祈求者(Invoker)的英雄,在游戏中他有三个基础技能:冰(Quas),雷(Wex),...

HDU 3923 Invoker

Invoker Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 122768/62768 K (Java/Others) Total Submission(s): 2013 A...

聊聊dubbo的Invoker select

序 本文主要研究一下dubbo的Invoker select InvokerInvocationHandler.invoke dubbo-2.7.1-sources.jar!/org/apache/dubbo/rp...

2019CCPC秦皇岛 I Invoker

题意: 就是魔法召唤技能,最少的符号数之类的。 思路: 线性dp题 记 dp[i][6] 为祈唤出第 i 个技能之后,身上三个法球的先后...

2019CCPC秦皇岛I题 Invoker(DP)

Invoker Time Limit: 15000/12000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 117...

mysql存储过程的definer和invoker

【存储过程的权限】 ALTER ROUTINE 编辑或删除存储过程 CREATE ROUTINE 创建存储过程 EXECUTE运行存储过程 【存储过程的创建语...

dubbo rpc Filter 中 invoker

dubbo rpc Filter 中 invoker的具体原理 Builder构造器的使用 //TODO

Spring Http Invoker使用简介

一、Spring HTTP Invoker简介 Spring HTTP invoker 是 spring 框架中的一个远程调用模型,执行基于 HTTP 的远程调用(意味着可...

MySQL视图 definer & invoker 权限

<div class="htmledit_views" id="content_views"> <p>1、创建视图</p> <pre class="has" name="code"><code class="language...

Dubbo服务服务暴露之ProxyFactory Invoker

Dubbo服务暴露过程中有涉及到调用ProxyFactory 中方法获取Invoker对象的过程,现在我们来深究下源码,来看下这个过程是在做些...

egova_invoker 的相关问答

还没有任何问答,马上提问

评论 (0)

加载中
更多评论
0 评论
2 收藏
分享
返回顶部
顶部