Nasıl Grails Grails 2.0 yapılandırma erişmek için?
En son Grails 2.0 kilometre taşı elde ettim, ve bir admin ConfigurationHolder
sınıfı için Uyarı görüyorum:
org.codehaus.groovy.grails.commons.ConfigurationHolder
Admin mesajı sadece "bağımlılık enjeksiyon Kullanmak yerine" benim için çok yararlı değildir. Ben bağımlılık enjeksiyon anlıyorum, ama nasıl zamanında giriş yapabilirim çok uygun Grails yapılandırma ile bir fasulye Tel miyim? Yerler benim Denetleyicileri ve Etiketleri (BootStrap
) dışında bir yapılandırma erişmek için ihtiyacım var.
CEVAP
Eğer bağımlılık enjeksiyon destekleyen bir obje olarak ihtiyacınız varsa, basitçe
grailsApplication
enjekteclass MyController { def grailsApplication def myAction = { def bar = grailsApplication.config.my.property } }
Eğer bir fasulye ihtiyacınız varsa,
src/groovy
src/java
söyleconf/spring/resources.groovy
Tel kullanarak// src/groovy/com/example/MyBean.groovy class MyBean { def grailsApplication def foo() { def bar = grailsApplication.config.my.property } } // resources.groovy beans = { myBean(com.example.MyBean) { grailsApplication = ref('grailsApplication') // or use 'autowire' } }
Başka bir yerde, muhtemelen en kolay gereken sınıf için yapılandırma nesne geçmek veya gerekli olan belirli özellikler geçirmek istiyor.
// src/groovy/com/example/NotABean.groovy class NotABean { def foo(def bar) { ... } } // called from a DI-supporting artifact class MyController { def grailsApplication def myAction = { def f = new NotABean() f.foo(grailsApplication.config.my.property) } }
Güncelleme:
Burt Beckwith son zamanlarda bu blog mesajların bir çift yazdı. Diğer creating your own holder class seçeneği sunarken etki alanı sınıfları içinde, * getDomainClass()
*16 eğer yukarıdaki çözümler hiçbiri uygun değilse).
Nasıl Grails uygulama için bir oturum ...
Groovy / veri türünü belirlemek için n...
Nasıl değiştirmek için grails localhos...
Çözmek için nasıl "Eklenti yürütm...
Nasıl Python ortam değişkenleri erişme...