- 浏览: 562005 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
jiang2011jiang:
mybatis3源码核心类1--Configuration -
tuyf_hs:
同求 图片
zookeeper+dubbo+dubbo管理集群的简要配置[单机] -
安静听歌:
请问图片还能找的会吗?你的图片和原文的图片都挂了,,,如果有图 ...
zookeeper+dubbo+dubbo管理集群的简要配置[单机] -
ahua186186:
yngwiet 写道楼主,有一个地方不太明白,为什么要用“ge ...
ListView中getChildAt(index)的使用注意事项 -
yngwiet:
楼主,有一个地方不太明白,为什么要用“getChildAt(p ...
ListView中getChildAt(index)的使用注意事项
以服务实现类NewsService为例:
思考:不明白作者为什么要这样生成服务代理类,根据服务名用反射获取服务实例不行吗?性能貌似也不低啊。 还是说为了热部署才这么做的,我能想到的只有这么个需求才会这么做。
ProxyFactoryCreater类动态生成的代码:
ProxyClassCreater类动态生成的代码:
思考:不明白作者为什么要这样生成服务代理类,根据服务名用反射获取服务实例不行吗?性能貌似也不低啊。 还是说为了热部署才这么做的,我能想到的只有这么个需求才会这么做。
ProxyFactoryCreater类动态生成的代码:
//动态代理工厂类 public class ProxyFactory1439795760927 implements IProxyFactory{ private IProxyStub proxyNewsServicedemo =null; private IProxyStub demo1 =null; private IProxyStub demo2 =null; public void IProxyFactory(java.util.List $1); { proxyNewsServicedemo=(com.bj58.spat.gaea.server.contract.context.IProxyStub)$1.get(0); demo1=(com.bj58.spat.gaea.server.contract.context.IProxyStub)$1.get(1); demo2=(com.bj58.spat.gaea.server.contract.context.IProxyStub)$1.get(2); } //动态生成代理工程的getProxy方法 public IProxyStub getProxy(String lookup) { if(lookup.equalsIgnoreCase("NewsService")) { return proxyNewsServicedemo; } if(..){ .. } if(..){ .. } if(..){ .. } return null; } } }
ProxyClassCreater类动态生成的代码:
//动态代理类 public class NewsServiceProxyStub1439795944146{ /******************服务实现类对象start*************************/ private static INewsService serviceProxy = new NewsService(); /******************服务实现类对象end*************************/ /**********************具体的服务调用start********************************************/ public GaeaResponse getNewsByID(GaeaContext context) ServiceFrameException { IConvert convert = ConvertFacotry.getConvert(context.getGaeaRequest().getProtocol()); RequestProtocol request = (RequestProtocol)context.getGaeaRequest().getProtocol().getSdpEntity(); java.util.List listKV = request.getParaKVList(); if(listKV.size() == 1 && (((KeyValuePair)listKV.get(0)).getKey().toString().equalsIgnoreCase("int")|| ((KeyValuePair)listKV.get(0)).getKey().toString().equalsIgnoreCase("Integer"))) { java.util.List listOutPara = new java.util.ArrayList(); int arg0 = 0; try { arg0 = convert.convertToint(((KeyValuePair)listKV.get(0)).getValue()); } catch (Exception e) { throw new ServiceFrameException("method:NewsServiceProxyStub1439546304065.getNewsByID--msg:parse gaeaRequest error", context.getChannel().getRemoteIP(), context.getChannel().getLocalIP(), context.getGaeaRequest().getProtocol().getSdpEntity(), com.bj58.spat.gaea.server.util.ErrorState.ParaException, e); } try { entity.News returnValue = serviceProxy.getNewsByID(arg0); return new com.bj58.spat.gaea.server.contract.context.GaeaResponse(returnValue, listOutPara); } catch (Exception e) { throw new ServiceFrameException("method:NewsServiceProxyStub1439546304065.getNewsByID--msg:invoke real service error", context.getChannel().getRemoteIP(), context.getChannel().getLocalIP(), context.getGaeaRequest().getProtocol().getSdpEntity(), com.bj58.spat.gaea.server.util.ErrorState.ServiceException, e); } } throw newServiceFrameException("method:NewsServiceProxyStub1439546304065.getNewsByID--msg:not fond method error", context.getChannel().getRemoteIP(), context.getChannel().getLocalIP(), context.getGaeaRequest().getProtocol().getSdpEntity(), com.bj58.spat.gaea.server.util.ErrorState.NotFoundMethodException, null); } //............省去多个服务 /**********************具体的服务调用end ********************************************/ public GaeaResponse invoke(GaeaContext context) throws ServiceFrameException { String methodName = ((RequestProtocol)context.getGaeaRequest().getProtocol().getSdpEntity()).getMethodName(); if(methodName.equalsIgnoreCase("getNewsByID")) { return getNewsByID(context); } if(methodName.equalsIgnoreCase("getNewsByCateID")) { return getNewsByCateID(context); } if(..){ .. } if(..){ .. } if(..){ .. } if(..){ .. } throw new ServiceFrameException("method:NewsServiceProxyStub1439547291816.invoke--msg:not found method ("+methodName+")", context.getChannel().getRemoteIP(), context.getChannel().getLocalIP(), context.getGaeaRequest().getProtocol().getSdpEntity(), com.bj58.spat.gaea.server.util.ErrorState.NotFoundMethodException, null); } }
发表评论
-
shiro落地的设计复杂度(最后总结)
2018-06-19 17:22 578经过1周的源码研究,终于对shiro的原理有了深刻的理解,基于 ... -
shiro login成功后保存了哪些数据
2018-06-19 17:05 1468shiro login成功后 保存了Principals 和 ... -
shiro 会话原理分析
2018-06-19 12:40 15911、从哪里获取sessionid每次请求都会尝试获取ses ... -
shiro内部原理分析
2018-06-15 17:07 2406一句话总结:会话域Context一路收集principal ... -
Zookeeper入门-001 源码环境搭建
2018-03-15 11:47 9031.到github下载源码:https://github.c ... -
dubbo服务治理之路由规则研究
2018-01-31 15:50 22081.今天没太多事情,挤 ... -
shiro SecurityUtils.getSubject()深度分析
2018-01-12 17:38 489301.总的来说,SecurityUtils.getSubject ... -
@Async核心实现1 --------AsyncExecutionAspectSupport
2017-12-27 10:34 1980基本原理: 通过spring的扩展接口AbstractBea ... -
从零开始玩转JMX(1):简介和 Standard MBean
2017-08-23 15:20 0http://www.importnew.com/22299. ... -
java基础回顾
2017-08-15 11:21 0http://www.cnblogs.com/skywang1 ... -
mybatis-generator-maven-plugin 插件扩展 增加自定义方法
2017-08-10 16:50 0https://my.oschina.net/alexgaoy ... -
解决了DeferredResult请求长时间占用数据库连接的问题
2017-08-04 09:55 2355最近看了看开源项目appllo配置中心的源码,发现一个很有意思 ... -
httpclient发送webservice
2017-05-03 23:25 0http://aperise.iteye.com/blog/2 ... -
与大师面对面交流:Chris Richardson 来华布道微服务架构
2016-11-28 21:28 821http://www.daocloud.io/microser ... -
eclipse反编译
2016-11-23 20:48 0http://jingyan.baidu.com/articl ... -
spring security
2016-09-12 19:28 0http://www.importnew.com/5641.h ... -
浅析JPA中EntityManager无法remove entity的问题
2016-07-18 21:50 0http://rickqin.blog.51cto.com/1 ... -
Permission Denied(publickey) 解决
2016-07-14 19:18 27771.生成公钥和私钥放到C:\Users\itservice\. ... -
权限管理系统
2016-04-18 13:29 0http://git.oschina.net/ketayao/ ... -
Java工程师成神之路--面试必须复习的基础
2015-12-28 17:20 0http://www.open-open.com/news/v ...
相关推荐
《PyPI官网下载:gaea-0.1.15.tar.gz——深入解析Python库的构建与发布》 PyPI(Python Package Index)是Python世界中的一个核心组成部分,它是Python开发者发布自己创建的软件包的地方,让全球的Python用户能够...
在58code-Gaea-4c84011这个压缩包中,包含了Gaea框架的源代码和其他相关资源,这对于开发者深入理解Gaea的内部机制、进行二次开发或者调试优化提供了极大的便利。通过阅读和学习这些源码,我们可以了解到Gaea是如何...
Gaea支持JDO标准,意味着它可以处理各种JDO兼容的对象数据库,提供透明的数据持久化服务,使开发人员能够专注于业务逻辑,而不是底层数据库操作。 **动态执行实例和类结构**: 这一特性表明Gaea允许用户在运行时...
资源分类:Python库 所属语言:Python 资源全名:gaea-1.6.6.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源分类:Python库 所属语言:Python 资源全名:gaea-0.1.22.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
当我们谈论“gaea 和 JDBC 整合”时,意味着我们需要将GAEA的分布式服务框架与JDBC驱动程序结合,以便在GAEA上实现对数据库的高效、灵活的操作。 GAEA框架的设计目标是提供一种可扩展、高可用性和高性能的解决方案...
生成api项目gaea [项目类型] create -n apiserver //创建基础的 api 项目➜ gaea api create -n ./apiserver//创建带登录和菜单组件的api项目(常用)➜ gaea api create -login " http://192.168.5.93:6688|B128F...
文档安装安装脚手架通过脚手架可一键创建Gaea模板的api项目生成框架此处以“ myproject”为项目名称$ rigger new api myproject正克隆到 ' /winshare/go/src/myproject ' ...myprojec项目已创建完成, 使用: cd /...
简介Gaea是小米中国区电商研发部研发的基于MySQL协议的数据库中间件,目前在小米商城大陆和海外得到广泛使用,包括订单,社区,活动等多项业务。Gaea支持分库分表,sql路由,读写分离等基本特性,更多详细功能可以...
直接raw格式灰度图生成地形,先创建地形,属性设置栏,导入灰度图,Terrain-Export To Obj ,选择保存位置即可导出,灰度图片png加贴图创建地形,导出obj格式,运行状态下点击界面按钮等待即可保存
此文件中包含有GAEA软件各个功能的释义,有助于你更好、更方便、更快捷地学习并掌握GAEA软件各个功能点。
- **自研系统**:开发了专门的图片存储系统,以及一套完整的开发框架(包括Web框架Argo和服务框架Gaea),大大降低了站点和服务的开发成本。 #### 四、更大流量挑战及解决方案 - **面临的新挑战**:如何应对更高的...
Gaea是服务通讯框架(Service Communication Framework)支持跨平台具有高并发、高性能、高可靠性,并提供异步、多协议、事件驱动的中间层服务框架。 标签:Gaea
首先,gaea系统基于Web技术构建,使用了现代化的开发框架和工具,如Python的Django框架,这使得系统具有高度可扩展性和灵活性。Django是一个高级的Python Web框架,能够快速开发安全且实用的Web应用程序。gaea利用...
例如,可以利用Java的`java.awt.image.BufferedImage`类创建和操作图像,通过随机算法生成拼图,再用`javax.imageio.ImageIO`进行保存和读取。同时,为了防止恶意破解,可能还会采用一些加密技术对生成的拼图和答案...
Proxy通常指的是数据库代理服务器,它位于应用服务器和数据库服务器之间,起到路由请求、负载均衡和透明化数据访问的作用。例如,MySQL Proxy可以智能地分配读写操作到合适的数据库实例,以提高系统的响应速度和可用...
它能将业务决策逻辑从系统逻辑中抽离出来,使两种逻辑可以独立于彼此而变化,使非技术业务人员能直接参与到业务规则管理工作中,使受限于复杂多变且不断发展的业务规则的应用程序和流程实现灵活的决策自动化。...
他随后将Go应用于微服务架构、数据库和缓存中间件以及一些业务基础服务,例如库存代理、人群服务、ID生成器等。徐成选将分享的主题划分为以下几个部分: 1. GoinXiaomi,即Go在小米的应用。在2014年,Go被引入小米...
在Gaea的核心功能中,最突出的是其基于物理的渲染(PBR)系统,这使得生成的地形在光照效果上显得更加真实。用户可以调整各种参数,如土壤类型、岩石纹理、植被覆盖等,以模拟不同的地理环境。此外,Gaea还支持导入...
02.GAEA基础介绍 · 语雀.mhtml