Grails有一个名为 resources.groovy
的 Spring beans 的cofig . 正如我从文档中理解的那样,它允许您使用loadBeans(%path%)包含另一个文件
我试过这个:
println 'loading application config ...'
// Place your Spring DSL code here
beans = {
loadBeans("classpath:security") //i'm tried with "spring/security" and "spring/security.groovy" also
}
但是当grails运行时,它会记录以下错误:
Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Error evaluating bean definition script: class path resource [security] cannot be opened because it does not exist
Offending resource: class path resource [security]; nested exception is java.io.FileNotFoundException: class path resource [security] cannot be opened because it does not exist
at grails.spring.BeanBuilder.loadBeans(BeanBuilder.java:470)
at grails.spring.BeanBuilder.loadBeans(BeanBuilder.java:424)
at resources$_run_closure1.doCall(resources.groovy:13)
at resources$_run_closure1.doCall(resources.groovy)
... 45 more
脚本 security.groovy
存在于 grails-app/conf/spring
并由grails maven插件编译为 target/classes/security.class
. 目录 target/resources/spring
此时为空
我如何配置Grails或grails-maven-plugin来复制这个配置文件,而不是将它编译成类?
附:当我尝试在 conf/Config.groovy
中使用 grails.config.locations = [ %path% ]
包含配置脚本时,这个问题也出现了,我的groovy脚本编译成类,因为它,grails配置生成器找不到它们:(
1 回答
你试过了吗:
println'加载应用程序配置...'
//将Spring DSL代码放在这里
beans = {
loadBeans( “类路径:* security.groovy”)
}
(这应该加载以security.groovy结尾的类路径上的所有Groovy文件,并将它们解析为bean定义) .
Update: 找到interesting thread,其中this message作为参考,我的理解是一个技巧是使用
scripts/_Events.groovy
中的ant将.groovy
文件复制到classesDirPath
目录,然后简单地使用:这看起来像是在战争和运行run-app时工作的黑客 . 不确定应该如何“应该”完成(如果这是有道理的) .