в Spring.config, я могу определить объект типа строки?

StackOverflow https://stackoverflow.com/questions/813452

  •  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 и получают их таким образом. Я думаю, что это имеет больше смысла, чем ваше предложение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top