NutzCN Logo
问答 nutz能与哪些rpc框架集成呢?
发布于 3113天前 作者 wendal 3047 次浏览 复制 上一个帖子 下一个帖子
标签: rpc zbus

RT

6 回复

跟其他集成问题一样, 只要该rpc框架不是强制依赖nutz无法提供的东西(例如有些框架必须用spring)就可以

昨晚尝试集成zbus, 套路都是一样:
1. 把spring ioc文件的定义用nutz ioc表达出来
2. 或者, 把演示的API调用, 用factory定义出来

看一个演示, 注意type是被注释了

		sayHelloWorld : {
			//type : "net.wendal.nutzbook.zbus.SayHelloWorld", // 被代理的接口,不需要写
			factory : "$rpc#getService", // $rpc 指向rpc这个bean(即上面声明的RpcFactory的实例), 通过其getService方法获取
			args : ["net.wendal.nutzbook.zbus.SayHelloWorld"] // 这里需要传被代理的接口的名称
		}

还原为Java代码:

// 假设rpc已经存在于上下文,且类型是RpcFactory
rpc.getService("net.wendal.nutzbook.zbus.SayHelloWorld");

// 如果查看API会发现getService的参数其实是Class, 不过Nutz已经帮你转好类型, 真实调用的是
rpc.getService(Class.forName("net.wendal.nutzbook.zbus.SayHelloWorld"));

zbus的集成,可以参考本站源码(内嵌服务器+RPC服务端+RPC调用端) 中的 zbus-*.js 及MainSetup中的初始化代码

有完整ioc容器,用nutz的ioc容器定义你想要用的框架的api对象(你可以选择自定义iocloader,js申明,xml申明.......) 然后就是在nutz的容器中自由的使用api咯

QQ截图20151016141500.png

试用zbus中,哈哈

@wendal
这种写法是类似 把通过这种方式rpc.getService(Class.forName("net.wendal.nutzbook.zbus.SayHelloWorld"));
同时把sayHelloWorld 也加载到Ioc中么

```
sayHelloWorld : {
factory : "$rpc#getService", // $rpc 指向rpc这个bean(即上面声明的RpcFactory的实例), 通过其getService方法获取
args : ["net.wendal.nutzbook.zbus.SayHelloWorld"] // 这里需要传被代理的接口的名称
}
``````

单独开了个帖子说 工厂方法

构造方法-------------------||
当前类的静态方法--------||||||
||||||||||||||||||||| 生成对象的不同方式而已
工厂类的静态方法----- --||||||
其他bean的实例方法-- -||

另外, zbus插件逐渐成型中, 敬请期待

添加回复
请先登陆
回到顶部