Grails插件如何修改应用程序的默认映射/约束配置?

Grails插件如何修改应用程序的默认映射/约束配置?,grails,plugins,groovy,grails-plugin,grails-config,Grails,Plugins,Groovy,Grails Plugin,Grails Config,我正在创建一个Grails插件,它将修改以下config属性的值: grails.gorm.default.constraints 问题是,当我的插件描述符开始运行doWithSpring时,如果使用该插件的Grails应用程序具有默认约束属性的现有值,那么它应该已经执行了 我希望我的插件在Grails开始执行之前修改默认约束的值,这样我添加的约束也会被包括在内。默认约束闭包似乎在Grails应用程序启动期间多次执行 我尝试了几种方法: 使用本文讨论的平台核心插件:。 问题与此类似:Grail

我正在创建一个Grails插件,它将修改以下config属性的值:

grails.gorm.default.constraints
问题是,当我的插件描述符开始运行doWithSpring时,如果使用该插件的Grails应用程序具有默认约束属性的现有值,那么它应该已经执行了

我希望我的插件在Grails开始执行之前修改默认约束的值,这样我添加的约束也会被包括在内。默认约束闭包似乎在Grails应用程序启动期间多次执行

我尝试了几种方法:

使用本文讨论的平台核心插件:。 问题与此类似:Grails应用程序的默认约束块在插件的doWithConfig开始运行之前至少执行一次。 Hackish修改Grails应用程序以在其位置中包含FooConfig.groovy,该文件存在于插件的Grails app/conf/dir中,因此可在类路径上访问,请参见下文。 问题:黑客,仍在努力,但可能是我唯一的选择。 grails.config.locations=[classpath:FooConfig.class]//是,*.class

最近回答了一些类似的问题。经验法则是,在加载所有插件配置之后,最终应用app config。所以插件提供的任何东西都可以在app config中被覆盖。我认为唯一可以实现这一点的地方是在应用程序运行过程结束时完成的引导。我希望这个答案有帮助。@dmahapatro很有趣,谢谢。我想我的情况很特殊:我想改变bindable。您对此有何看法:通过AST转换在gails core中找到的grails web数据绑定插件添加了可绑定约束。我认为我之前的评论不适用于bindable约束。它不是像max、maxSize、inList等那样的约束属性。我担心它必须像文档中提到的那样直接应用于类中。