Grails uygulamam başladığında, arka planda bir Spring Integration ve Batch işlemini başlatıyorum. Config.groovy dosyasında saklanan bazı DB bağlantı özelliklerine sahip olmak istiyorum, ancak Entegrasyon/Toplu işlemde kullanılan bir Java sınıfından bunlara nasıl erişebilirim?Java sınıfından yapılandırma Config.groovy
Converting Java -> Grails ... How do I load these properties?
kullanarak önerir:
private Map config = ConfigurationHolder.getFlatConfig();
gibi bir şey ardından:
Ben Konuyu buldumString driver = (String) config.get("jdbc.driver");
Bu gerçekten iyi çalışıyor (teh özellikler yüklenmeden Config.groovy dan doğru) ama sorun t hat YapılandırmaHolder, kullanımdan kaldırıldıktan sonra. Yani erişmek için olmayan bir kaldırılmış yolu
How to access Grails configuration in Grails 2.0?
vardır: Ve konuyla ilgilenen bulundu olduğunuz herhangi iplik Grails özgü olması ve bu iplik gibi dependancy enjeksiyon kullanarak önermek gibi görünüyor Bir Java sınıf dosyasından Config.groovy özellikleri?
Bağlandığınız sorunun kabul edilen yanıtında ikinci yöntemde yanlışlık var (http://stackoverflow.com/a/7136095/6509)? –
Merhaba Tim, cevap için alkış. Kaynak dosyasında (grailsApplication özelliği ve grailsApplication özelliği ile) java sınıfımı bir fasulye olarak koydum ve şu satırı ekledim: private GrailsApplication grailsApplication; alıcı ve ayarlayıcı ile. Ancak ConfigObject config = grailsApplication.getConfig() aracılığıyla erişmeye çalıştığımda; boş ve hatalar gibi görünüyor. Yanlış yaptığım herhangi bir fikrin var mı? Teşekkürler – Illu
Nereye erişmeye çalışıyorsunuz? Bağımlılık-enjekte edilmiş fasülyeleri yapıcıda kullanamazsınız, örneğin, '@ PostConstruct' ile açıklamalı bir yöntem bildirmeniz ve bunun yerine 'grailsApplication' gerektiren mantığı koymanız ya da alternatif olarak yerine constructor argümanı enjeksiyonu kullanmanız gerekir. setter enjeksiyonu. –