У меня есть веб-приложение JSF с Spring, и я пытаюсь выяснить способ ссылки на аргументы JVM из applicationContext.xml. Я начинаю JVM с аргумента среды (-Denv = development, например). Я нашел и попробовал несколько разных подходов, включая:
<bean id="myBean" class="com.foo.bar.myClass">
<property name="environment">
<value>${environment}</value>
</property>
</bean>
Но, когда метод setter вызывается в MyClass, вместо "development" передается строка "$ {environment}". У меня есть работа для использования System.getProperty(), но было бы лучше и чище, чтобы иметь возможность устанавливать эти значения через Spring. Есть ли способ сделать это?
Изменить: То, что я должен был упомянуть ранее, заключается в том, что я загружаю свойства из своей базы данных с помощью соединения JDBC. Это, кажется, добавляет сложности, потому что, когда я добавляю заполнитель свойств к моей конфигурации, свойства, загруженные из базы данных, переопределяются заполнителем свойств. Я не уверен, что это зависит от заказа или что-то в этом роде. Это, как я могу сделать то или другое, но не оба.
Изменить: В настоящее время я загружаю свойства, используя следующую конфигурацию:
<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" />