'daki JVM bağımsız değişkenlerini nasıl okurum? İlkbaharda bir JSF web uygulamasına sahibim ve JVM bağımsız değişkenlerini applicationContext.xml dosyasından referans almaya çalışıyorum. JVM'yi bir ortam argümanı ile başlatıyorum (örneğin, -Denv = geliştirme). Ben buldum ve dahil olmak üzere birkaç farklı yaklaşımlar denedi: ayarlayıcı yöntem Sınıfım içinde çağrılırSpring applicationContext.xml
<bean id="myBean" class="com.foo.bar.myClass">
<property name="environment">
<value>${environment}</value>
</property>
</bean>
Fakat, dize "$ {ortam}" yerine "kalkınma", geçirilir. System.getProperty() işlevini kullanmak için yerinde bir işim var, ancak bu değerleri Spring üzerinden ayarlayabilmek daha güzel ve daha temiz olurdu. Bunu yapmanın bir yolu var mı?
Düzelt: Daha önce bahsettiğim, JDBC bağlantısı kullanarak veritabanımdan özellikler yüklüyorum. Bu karmaşıklık katıyor gibi görünüyor, çünkü bir özellik yer tutucuyu yapılandırmamda eklediğimde, veritabanından yüklenen özellikler özellik yer tutucusu tarafından geçersiz kılınır. Sipariş bağımlı ya da bir şey olduğundan emin değilim. Sanki birini ya da diğerini yapabilirim, ama ikisini de değil.
Düzenleme: Şu anda aşağıdaki yapılandırmayı kullanarak özelliklere yükleme ediyorum: Senin durumunda -Dtest="hallo welt"
için
<bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc.mydb.myschema"/>
</bean>
<bean id="props" class="com.foo.bar.JdbcPropertiesFactoryBean">
<property name="jdbcTemplate">
<bean class="org.springframework.jdbc.core.JdbcTemplate">
<constructor-arg ref="myDataSource" />
</bean>
</property>
</bean>
<context:property-placeholder properties-ref="props" />
Örneğimdeki yaklaşımı kullanarak bu yaklaşımı kullanarak aynı sonucu elde ediyorum. "# {SystemProperties.environment}" dizesi, setter yöntemine geçirilen dizedir. – jinxed
@jinxed: Sanırım son problemi buldum, bir yazım hatası vardı. - uzatılmış cevabımı gör. – Ralph