以下是方案。我的Grails应用程序之外有一个包含url/username/password/etc的文件。信息,以便开发人员无法查看生产的连接信息。我包括在实践中Config.groovy中这样的信息:Grails 2.0使用POGO中外部文件的配置值
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中,而grails应用程序的Grails自动装配没有被调用。我的问题有2个部分:
1)在POGO中有没有更好的方式从文件中获取配置信息?
2)如果没有更好的方法,我该如何将grailsApplication注入到POGO中?
其他信息: 我正在使用Grails GLDAPO插件(http://gldapo.codehaus.org/)与LDAP目录进行接口。我试图让这些对象(我放在/ src/groovy下)的行为与域对象相同,因为我可以使用静态方法来做findBy...(..)
。有了你建议的模式,我必须通过服务来获取数据。这并不坏,它只是不如Groovy :)
感谢@BurtBeckwith的输入! –