这是场景。我在 Grails 应用程序之外有一个文件,其中包含 url/用户名/密码/等。信息使开发人员无法看到生产的连接信息。我通过执行以下操作将这些信息包含在 Config.groovy 中:
grails.config.locations << "file:" + "C:/directory/from/env/variable/data.properties"
然后我通过以下方式在 POGO 中访问这些信息:
import org.codehaus.groovy.grails.commons.ConfigurationHolder
...
ConfigurationHolder.config.url
ConfigurationHolder.config.userName
ConfigurationHolder.config.password
升级到 Grails 2.0 后,我注意到 ConfigurationHolder 已被弃用。所以我去了文档:(http://grails.org/doc/latest/guide/conf.html)试图找出如何解决它。文档说使用 grailsApplication 来获取配置值。我的问题是我在 POGO 中,并且 grailsApplication 的 Grails 自动装配没有被调用。我的问题有两部分:
1) 在 POGO 中是否有更好的方法从文件中获取配置信息?
2)如果没有更好的方法,我如何将 grailsApplication 注入 POGO?
附加信息:我正在使用 Grails GLDAPO 插件 ( http://gldapo.codehaus.org/ ) 与 LDAP 目录进行交互。我试图使这些对象(我放在 /src/groovy 下)的行为方式与域对象相同,因为我可以在它们上使用静态方法来执行findBy...(..)
。使用您建议的模式,我必须通过服务来获取数据。这还不错,只是不像 Groovy :)