Конфигурация xml Spring с использованием значений из файлов свойств - PullRequest
0 голосов
/ 08 ноября 2019

Для DI в xml через сеттеры, используя значения из файлов свойств, я могу использовать:

<beans>
..
   <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="props.properties"/>
    </bean>
    <bean id="first" class="..">
        <property name="name" value="${values.name}"/>
    </bean>

</beans>

Но PropertyPlaceholderConfigurer класс устарел.

Я пытался использовать

<context:property-placeholder location="classpath:props.properties"/>

вместо него, но не сработало

prop.properties в расположенном в resources сообщении об ошибке no declaration can be found for element 'context:property-placeholder'

1 Ответ

1 голос
/ 08 ноября 2019

Согласно Javadocs PropertyPlaceholderConfigurer

по состоянию на 5.2;используйте вместо этого org.springframework.context.support.PropertySourcesPlaceholderConfigurer, который более гибок благодаря использованию механизма Environment и PropertySource

, который можно загрузить какниже, вы должны включить namespace & schemalocation в ваши теги bean. скопируйте тег beans снизу

 <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
            xmlns:util="http://www.springframework.org/schema/util"
            xsi:schemaLocation="
              http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
              http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd
              http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd">


 <context:property-placeholder location="classpath:foo.properties,classpath:bar.properties"/>

    </bean>

</beans>
...