我有方法
def test(String a, String b) { }
Run Code Online (Sandbox Code Playgroud)
我想用动态参数图来调用它.我总是这样
test(['1','2']); //valid call
Run Code Online (Sandbox Code Playgroud)
并且
test([a:'1',b:'2']); //=> does not work
Run Code Online (Sandbox Code Playgroud)
将工作.但事实并非如此.所以我记得传播操作符,但无法让它工作....
有没有办法用某种地图作为参数而不是单个参数调用上面的方法?
作为一个以groovy开头的tcl开发人员,我对groovy中的列表和地图支持感到有些惊讶.也许我在这里遗漏了一些东西.
我习惯在tcl中即时转换字符串,列表和数组/映射.在tcl中,类似于
"['a':2,'b':4]".each {key, value -> println key + " " + value}
Run Code Online (Sandbox Code Playgroud)
是可能的,在groovy中,每个命令都会遍历字符串的每个字符.
这可能是一个很大的问题,因为我可以轻松地使用像split或tokenize命令这样的东西,但由于序列化的列表或映射不仅仅是"a:2,b:4",因此解析起来有点困难.
似乎griffon开发人员使用stringToMap库(http://code.google.com/p/stringtomap/),但该示例也无法处理序列化地图.
所以现在我的问题是:在groovy中解析地图或列表的最佳方法是什么?
干杯,拉尔夫
PS:这是一个时髦的问题,但我用grails标记了它,因为我需要grails的这个功能,我想通过URL传递地图
更新:对我来说,这仍然是一个悬而未决的问题......所以这里有一些针对同样问题的人的更新:
.toString()会导致在所有情况下都无法转换回地图的东西,但是.inspect()会给你一个可以回溯到地图的String!.encodeAsJSON()并且JSON.parse(String)- 两者都很棒,但我还没有检查解析器将使用JSON函数做什么(可能的安全问题)我试图改变grails中的标准'id':
calls Book {
String id
String title
static mapping {
id generator:'assigned'
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我很快发现这打破了我的自举.代替
new Book (id:'some ISBN', title:'great book').save(flush:true, failOnError:true)
Run Code Online (Sandbox Code Playgroud)
我不得不使用
def b = new Book(title:'great book')
b.id = 'some ISBN'
b.save(flush:true, failOnError:true)
Run Code Online (Sandbox Code Playgroud)
否则我会在调用save()'错误之前手动分配这个类的'ID.
但到目前为止还可以.
然后我在bookController的保存操作中遇到了同样的问题.但这一次,解决方法并没有成功.
有什么建议?
我知道,我可以重命名id,但之后我将不得不改变所有的脚手架视图......
由于groovy擅长解析几乎任何东西,搜索如何解析groovy代码将不会显示任何好结果 - 所以我希望SO社区能够提供帮助:-)
我想为grails域类编写一些(图形)编辑器,但不想重新发明轮子.
通过反射检查域类很容易,但我想更进一步 - 我想修改代码并将其作为域类文件写回.
一个问题是反射(以及AST也是afaik)将丢弃所有注释和格式(格式化不是大问题,我可以打印文件)...
任何想法,我可以找到一个groovy解析器,我可以在其上构建我的想法?
想象一下两个共享域类的Grails应用程序.也许是一个Book域类.
一个应用程序被识别为数据的所有者,必须访问域数据.像亚马逊和亚马逊的网络服务.
我想拥有的应用程序将使用普通的域类并通过Web服务公开数据是微不足道的 - 在grails中没有问题.
但是在其他应用程序中实现域的最佳做法是什么?
我正在寻找扩展Grails CRUD生成功能的最佳方法.它应该是一个Grails插件,它为以下功能提供了额外的生成器:
Grails开箱即用的脚本应该尽可能小.到目前为止,我确定了3个实施设计策略:
任何解决方案都有利有弊.实施它的最佳方法是什么?也许有一种更简单的方法.
带有 Spring Security 5 的 Spring Boot 2 可以配置为使用 openID 连接 ID 提供程序进行身份验证。我仅通过配置 Spring Security 就设法设置了我的项目 - 这适用于各种完美预配置的安全机制,例如缓解会话固定。
但是似乎 Spring Security 在令牌过期时不会自行刷新令牌(存储在会话中)。
是否有设置或我必须自己照顾刷新?
更新:Spring Boot 2.1 已经发布,所以是时候重新审视这个问题了。我仍然不知道 accessToken 现在是否可以自动刷新,或者我是否必须为此编写代码......
刚开始尝试HTML5功能,真的很喜欢localStorage.
现在我想知道创建一些让生活更轻松的库是否合理.容易将对象从localStorage持久保存到server-DB的东西.类似于object.findAllByAttribute(Attribute)等.
所以我的问题是:是否已经有一些东西可以帮助我编写离线html5应用程序?如果没有,它会有意义还是我在想错路?
当您想要创建标准UML图时,PlantUML非常强大.
但我目前考虑使用PlantUML来记录EIP路线(例如这些图像上的路线:https://www.google.de/search? q = camera +route&safe = off&source = lnms&tbm = isch ).
如果您可以为类指定另一个图像而不是普通框,那么这将非常简单.像Sparx Enterprise Architect中的SVG或WMF图像或形状脚本.
我在文档中找到的唯一自定义图像,那些微小的精灵......
我有一个简单的java类:
package test;
class Hello {
public static void main(String[] args) {
System.out.println("Hi");
}
}
Run Code Online (Sandbox Code Playgroud)
我做了什么
javac Hello.java
Run Code Online (Sandbox Code Playgroud)
问题:现在我想从一个groovy脚本访问这个类(access.groovy)...
import test.*
Hello.main(null)
Run Code Online (Sandbox Code Playgroud)
但
groovy -cp . access.groovy
Run Code Online (Sandbox Code Playgroud)
会导致一个MissingPropertyException.我究竟做错了什么?