в Spring.config, я могу определить объект типа строки?
-
03-07-2019 - |
Вопрос
Могу ли я сделать что-то вроде этого:
<object id="mydb" type="string">
<value>"blah"</value> <-- note that <value> tag does not really exist
</object>
Чтобы я мог использовать его позже так:
<object id="Someobject" type="Sometype">
<property name="ConnectionString" ref="mydb"/>
</object>
РЕДАКТИРОВАТЬ: это было решение SpringFramework.NET, которое я искал. Похоже, PropertyPlaceholderConfigurer там тоже существует. Спасибо всем.
Решение
Используйте встроенный Spring PropertyPlaceholdConfigurer :
<bean id="PropertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
<property name="location" value="classpath*:/application.properties"/>
</bean>
<bean id="Someobject" class="somepackage.Sometype">
<property name="connectionString" value="${mydb}"/>
</bean>
Настройка SYSTEM_PROPERTIES_MODE_OVERRIDE
позволяет переопределить свойство через командную строку.
Другие советы
Используйте заполнители, например, $ {magic} и определите ключ / значение в файле свойств вместе с PostProcessor. Google для весеннего постпроцессора заполнителя ...
Я не вижу никакого преимущества в вашем пути. Это все еще просто конфигурация. Р>
Иногда люди выводят строки подключения к базе данных в файл .properties и получают их таким образом. Я думаю, что это имеет больше смысла, чем ваше предложение.