2011-06-08 14 views
12

Spring'in applicationcontext.xml dosyasındaki # {systemProperties ['environment']} kullanımı, çevreye ilişkin değeri döndürüyor mu? Veya bahar applicationcontext.xml dosyasındaki sistem değişken değerini değiştirmenin herhangi bir yolu var mı?Aşağıdaki gibi bir sözdizimi var mı: sistem değişkenini almak için # {systemProperties ['environment_variable_name']}?

+0

Sistem özellikleri veya ortam değişkenlerinden mi bahsediyorsunuz? Bunlar iki farklı şeydir, bilirsin ... –

cevap

27

sonra orada fark arasındaki: Farklı şekillerde sistem özelliklerine erişebilirsiniz

:

  • #{systemProperties['databaseName']}
  • #{systemProperties.databaseName}
  • ${databaseName} // $ yerine # !! #{systemProperties['databaseName']} ile

sistem-sistem-özelliklerine erişebilirsiniz.

#{systemProperties.databaseName} ile, örneğin komut satırından (-DdatabaseName="testDB") okunan sistem özelliklerine erişebilirsiniz. Eğer yüklü ve PropertyPlaceholderConfigurer tarafından ve sistem prooperties çok

@Value("#{systemProperties['java.version']}") 
private String javaVersionMap; 

//Dont know how 
//@Value("#{systemProperties.javav.version}") 
//private String javaVersionDirect; 

@Value("${java.version}") 
private String javaVersionProp; 

//-DcmdParam=helloWorld 
@Value("#{systemProperties['cmdParam']}") 
private String cmdParamMap; 

@Value("#{systemProperties.cmdParam}") 
private String cmdParamDirect; 

@Value("${cmdParam}") 
private String cmdParamProp 

kullanabilirsiniz örneğin sağlanan dosyaları özelliklerinden özelliklere erişmek zorunda ${databaseName} ile

hepsi bir @Value ek açıklama veya config.xml dosyasında (<property name="databaseName" value="#{systemProperties.databaseName}"/>)

+0

Bu iki farklı sistem özelliği için doğru isimleri bilen var mı (sağlanan sistem ve komut satırı olanlar)? – Ralph

+0

böyle bir şey yok. Komut satırı sürümü "gerçek" sistem özelliklerini ayarlar: http://download.oracle.com/javase/6/docs/technotes/tools/windows/java.html#standard. Böyle bir fark sadece Maven'de mevcut: Sistem Özellikleri (komut satırı) vs Proje Özellikleri (pom.xml) –

+0

@Sean Patrick Floyd: Test ettim ve haklısınız (Bu benim kayıtlarımın yanlış olduğunu gösteriyor). - Cevabı düzelttim – Ralph

4

Böyle bir şey yapmanın bir yolu, sistem özelliklerini kullanacak şekilde yapılandırılabilen PropertyPlaceholderConfigurer kullanmaktır.

Ayrıca, Spring 3.1 M1 blog entry "ortam" dan yapılandırma bilgilerine erişmek için yeni şeyler hakkında konuştuğunu fark ettim. Tabii ki, bu sadece bir kilometre taşı ... üretime hazır bir sürüm değil. Yanlış hatırlamıyorsam zaman

İlgili konular