一切都是平等的,并且以最简单的形式,哪个更快?
1.)对Web服务方法
的调用2.)对数据库的调用
例如,假设您有一个简单的Web服务,它只返回一个在X时间内计算的整数.您还有一个数据库,当以正确的方式查询时,也需要X时间来计算答案.(因此两种情况下的计算时间都相同)在这两种情况下,为简单起见,假设两个方向的数据量相同,例如,单个32位整数.
到目前为止,Web服务和数据库的计算时间完全相同.
环境是应用程序所在的1个应用程序服务器,以及同时拥有Web服务和数据库的另一个服务器.除了重复调用Web服务或数据库的应用程序之外,环境中没有任何其他操作.这一切都在一个局域网内,因此任何网络延迟都是相同的.
从一个更快的应用程序,对数据库的调用,或对Web服务的调用?
我想,我想要分离的是哪个更重.设置,打开,关闭,拆除数据库连接的速度是否比Web服务慢,或者它是否相同?此外,如果还有其他事情,例如从Web服务解析结果,它们如何影响速度?
我正在研究的Grails应用程序变得非常大,将它重构为几个模块会很好,这样我们就不必每次都重新部署整个程序.
在几个模块中拆分Grails应用程序的最佳做法是什么?特别是我想创建一个域类+相关服务的包,并在应用程序中将其用作模块.这可能吗?是否可以使用插件?
我想允许用户使用OpenID登录我的网站.到目前为止,我已经整合了谷歌和雅虎.
还有哪些其他流行服务提供OpenID登录端点?我特别感兴趣的是Windows Live(但从我看到他们最近关闭了端点,我找不到任何关于新端点的信息).社交网站如Facebook或Twitter怎么样?
我见过OpenID目录,但我没有找到任何有用的信息.
我目前正致力于将Groovy与现有Java项目集成.Groovy脚本基本上将XML解析为对象,然后使用现有的DAO来保存,更新等.我有2个项目.一个时髦.一个java.使用Maven(我使用gmaven插件),构建Java然后构建Groovy项目.
如果需要,我希望能够从Java项目调用Groovy脚本,反之亦然.我确信有办法做到这一点,但我无法做到这一点.
例如,我的Java类是
State(1 Field)
StateDAO
Run Code Online (Sandbox Code Playgroud)
要调用的Groovy脚本基本上解析XML文档,然后使用带有值s的DAO填充表,现在我想要它做的就是将它发布到数据库.
如果您有任何建议,请告诉我.谢谢!
我有一个对象集合,每个对象都有一个位字段枚举属性.我想要得到的是整个集合中位字段属性的逻辑OR.如何通过循环遍历集合(希望使用LINQ和lambda)来完成此操作?
这是我的意思的一个例子:
[Flags]
enum Attributes{ empty = 0, attrA = 1, attrB = 2, attrC = 4, attrD = 8}
class Foo {
Attributes MyAttributes { get; set; }
}
class Baz {
List<Foo> MyFoos { get; set; }
Attributes getAttributesOfMyFoos() {
return // What goes here?
}
}
Run Code Online (Sandbox Code Playgroud)
我试过这样用.Aggregate:
return MyFoos.Aggregate<Foo>((runningAttributes, nextAttributes) =>
runningAttributes | nextAttribute);
Run Code Online (Sandbox Code Playgroud)
但这不起作用,我无法弄清楚如何使用它来得到我想要的东西.有没有办法使用LINQ和一个简单的lambda表达式来计算这个,或者我只是在集合上使用循环?
注意:是的,这个示例案例很简单,基本foreach将是要走的路,因为它简单且不复杂,但这只是我实际使用的简化版本.
我们在Grails 2.0中有一个应用程序,当我们运行时,我们已经工作了localhost:8080.在Config.groovy,应用程序具有grails.serverURL必须为当前主机和当前应用程序名称设置的属性.但是,在我们的QA环境中,中间件团队接受我们给他们的战争并将其部署到服务器,该服务器的名称和端口我们不知道提前.
似乎Grails假设您总是要注册一个域名,然后完全控制该名称和应用程序运行的端口,但事实并非如此.
解决这个问题的最佳方法是什么?我们尝试过简单删除grails.serverURL,但Spring Security似乎使用它来建立登录成功和注销成功时重定向的URL.
development { grails.serverURL = "http://www.notused.com/${appName}" }
production { grails.serverURL = "<we don't know yet>" }
Run Code Online (Sandbox Code Playgroud)
在有人要求之前,我已经阅读了StackOverflow和其他与此问题相关的大量帖子,但没有回答这个具体问题.
我正在尝试使用Java将JSON格式的数据发送到服务器.信息到达服务器,但服务器正在响应"错误请求".
HttpPost httpost = new HttpPost(path);
StringEntity se = new StringEntity(JSONRequest);
//sets the post request as the resulting string
httpost.setEntity(se);
//sets a request header so the page receving the request will know what to do with it
httpost.setHeader("Accept", "application/json");
httpost.setHeader("Content-type", "application/json;charset=utf8");
HttpResponse response = httpclient.execute(httpost);
Run Code Online (Sandbox Code Playgroud)
这是我的请求的基本设置.这是JSONData:
{"clientApplicationDto":{"AuthenticationToken":"","BrandId":12,"MobileDeviceApplicationId":0},"mobileDeviceInfo":{"CarrierName":"MTN-SA","OsVersion":"2.2.2","ClientApplicationVersion":"TEST","DeviceManufacturer":"HTC","DeviceName":"HTC Desire","DeviceUniqueId":"1e9766fa2ef4c53a","OsName":"8","ClientApplicationTypeId":3}}
Run Code Online (Sandbox Code Playgroud)
如果这对你来说很合适,我会开始向管理员发送垃圾邮件,但是现在,我需要知道我是否遗漏了一些东西.
我正在尝试将来自blueimp的优秀jquery-file-upload集成到Grails 2.0中,并为此编写一个新的插件.我知道已经有一个插件,但它没有使用资源,它已经有9个月没有更新了,而且jquery-file-upload在那段时间里发生了很大的变化.
所以我把发行版的所有文件放在我的插件中,现在我正在尝试编写一个可以处理上传的控制器动作.问题是request.getFileNames()只给我一个files[]条目,我不知道如何检索我上传的3个单独的文件.
你如何处理这样的输入发送的文件:<input type="file" name="files[]" multiple>?
根据Grails的最佳实践和MVC模式,我正在尝试确定何时是引入服务的正确时间而不是保持控制器的增长.我发现它有些矛盾,我读到的最佳实践以及看似常见的做法,所以很想听听其他人对此的看法.
考虑到GORM调用,我原本以为与GORM有关的任何事情应该真正进入服务.虽然我自己也没有这样做,特别是在编写非常基本的控制器方法时show,只需get()在域类上执行一个然后渲染视图以显示检索到的对象的详细信息.
但是,在遵循"清洁代码"等书籍和类似书籍之后,维护良好的代码应该具有凝聚力,理想情况下,方法应该只执行一项任务.那么在完美的世界中,控制器中的show方法是否只负责在渲染视图之前确定要显示的对象?从数据库中检索可以进入数据库中的一个方法,该方法的唯一任务是从数据库中检索并在未找到时抛出异常等.
但是,是的,这看起来有点矫枉过正.
所以采取更进一步的步骤,create()或update()方法.目前,Grails生成的代码再次将所有内容都放入控制器中,根本不使用任何服务.
那么,建议的时间点何时我们需要使用服务?只有当事务必须发生时,例如,在create()调用时,我们可能还想将记录写入日志文件以保持审计日志的排序.当然这需要服务吗?
我很想听听别人觉得是什么时候介绍服务的正确时间,我想这个人与人之间差别很大.
我已将我的开发盒更新为Grails 2.1.0和Groovy 2.0(Ubuntu 12.04 64Bit,STS 2.9).
在将我的应用程序从2.0迁移到2.1.0后,我注意到WAR文件仍包含groovy-all Groovy 1.8.6 jar.
我的问题是:
grails ×5
groovy ×2
java ×2
aggregate ×1
android ×1
bit-fields ×1
c# ×1
database ×1
deployment ×1
enums ×1
file-upload ×1
jquery ×1
json ×1
lambda ×1
module ×1
openid ×1
optimization ×1
plugins ×1
war ×1
web-services ×1
xml ×1