我正在创建一个 Grails 插件,它将修改以下配置属性的值:
grails.gorm.default.constraints
问题是,当我的插件描述符开始运行 (doWithSpring) 时,如果使用该插件的 Grails 应用程序具有默认约束属性的现有值,那么它就已经被执行了。
我希望我的插件在 Grails 开始执行它之前修改默认约束的值,以便我添加的约束也将包括在内。默认约束闭包似乎在 Grails 应用程序启动期间执行了多次。
我尝试了几种方法:
- 使用本文讨论的平台核心插件:如何从另一个 grails 插件配置 grails 插件。
- 存在类似的问题:Grails 应用程序的默认约束块在插件的 doWithConfig 开始运行之前至少执行一次。
- (Hackish)修改 Grails 应用程序以在其“位置”中包含一个 FooConfig.groovy,该文件存在于插件的 grails-app/conf/ 目录中,因此可以在类路径中访问(见下文)。
- 问题:Hackish,仍在努力,但可能是我唯一的选择。
grails.config.locations = ["classpath:FooConfig.class"] // Yes, *.class