以下是方案。我的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的輸入! –