Selam,
Bir Spring projesinde classpath'te geliştirme amaçlı tuttuğum properties
dosyası var. Bunu biraz da projeyi çalıştırmak için harici bir efor
gerekmesin diye yapıyorum. Ama dışarda belirlenen bir yere bir properties
dosyası koyarsam onu okusun istiyorum.
Bunun için application context xml'inde <context:property-placeholder>,
Java annotation gibi yöntemlerle bir sürü şey denedim. Sonrasında kodun bir
yerinde de;
@Autowired
private Environment env;
...
env.getProperty("foo")
...
yaptığımda null alıyorum. Java Annotation'ıyla yazdığımız Configuration
sınıfının tepesine @PropertySource({ "classpath:foo.properties" }) gibi bir
tanımlama yaparsam çalışıyor. Ancak fallback etmesini istediğim dışardaki
properties dosyasını yazarsam ve o dosya bulunamazsa Exception fırlatıyor.
Bunu try/catch ile manuel yapmak da mümkün (hatta yapılmışı var projede)
biliyorum ama ben bu işi en Spring'çe yöntemle nasıl çözeriz'i bulmaya
çalışıyorum. XML'de son yaptığım tanımlama şöyle;
<bean id="propertyConfigurer"
class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:platform.properties</value>
</list>
</property>
</bean>
Annotation'ları kaldırırsam bu bean'i hiç bir zaman Environment ile
kullanamıyorum.
---
Quis custodiet ipsos custodes?
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php