Я пытаюсь изменить этот пример для своих целей.
Я хочу загрузить свойства из файла, специфичного для сервера, используя что-то вроде этого:
<beans:bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<beans:property name="locations">
<beans:list>
<beans:value>${ENV_JDBC_CONFIG}</beans:value>
</beans:list>
</beans:property>
</beans:bean>
Где ENV_JDBC_CONFIG
- переменная enrivonment, указывающая путь к файлу свойств.
Это не с
'java.io.FileNotFoundException: Could not open ServletContext resource [/${ENV_JDBC_CONFIG}]'
Как я могу выполнить то, что я пытаюсь сделать здесь?
Spring генерирует ошибочное сообщение об ошибке, если переменная, указанная в ${}
, не определена.
В этом случае он сказал мне FileNotFound, когда на самом деле переменная не была определена (с этим точным написанием, во всяком случае).
Исправлено было добавить -DENV_JDBC_CONFIG=file: /blah/blah/blah
в /etc/defaults/tomcat7
Используйте свойство systemPropertiesMode конфигуратора для использования свойств System.
проверьте эту статью, она подскажет вам советы по управлению внешними свойствами.
Если вы хотите использовать переменную env внутри другого определения bean-компонента, вы можете использовать его как
<bean id="yourBean" class="com.company.YourBean"> <property name="environment" value="#{ systemProperties['env.var1'] }"/> <!-- other properties goes here....--> </bean>
<beans:value>${env.ENV_JDBC_CONFIG}</beans:value>
?