BeanDefinitionStoreException: недопустимое определение bean-компонента с именем 'aefw.propertyValues', определенным в файле .... Не удалось разрешить заполнитель 'configRoot' - PullRequest
0 голосов
/ 14 марта 2019

Вот мой весенний файл конфигурации, как показано ниже,

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <bean id="aefw.application" parent="aefw.applicationBase">
        <property name="configId" value="CHCPMTSP"/>
        <property name="configRoot" value="file:///C:/GIT/CHCPMTSP/CHCPMTSP/CHCPMTSP-web/src/main/resources/CHCPMTSP/config"/>
    </bean>

    <bean id="aefw.propertyValues" parent="aefw.props">
        <property name="ignoreUnresolvablePlaceholders" value="true" />
        <property name="locations">
            <list>
                <value>${configRoot}/application.properties</value>
            </list>
        </property>
    </bean>
</beans>

Я хочу добавить новый файл свойств, чтобы я мог получать значения из аннотации @Value в моем контроллере, поэтому я изменяю файл конфигурациииспользовать заполнитель свойства, как показано ниже:

 <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"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

        <bean id="aefw.application" parent="aefw.applicationBase">
            <property name="configId" value="CHCPMTSP"/>
            <property name="configRoot" value="file:///C:/GIT/CHCPMTSP/CHCPMTSP/CHCPMTSP-web/src/main/resources/CHCPMTSP/config"/>
        </bean>
        <context:property-placeholder location="classpath*:common.properties"/>

        <bean id="aefw.propertyValues" parent="aefw.props">
            <property name="ignoreUnresolvablePlaceholders" value="true" />
            <property name="locations">
                <list>
                    <value>${configRoot}/application.properties</value>
                </list>
            </property>
        </bean>
    </beans>

Тогда я получаю ошибку ниже,

BeanDefinitionStoreException: Invalid bean definition with name 'aefw.propertyValues' defined in file [C:\GIT\WS\CHCPMTSP\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\CHCPMTSP-web\WEB-INF\classes\app-context\beans-application.xml]: Could not resolve placeholder 'configRoot'

Пожалуйста, предложите лучшее решение, чтобы я мог использовать configRoot одного компонентав другом, а также инициализировать свойство-место-папку в другом файле.

Проверка существующих ответов не помогла, и я также попытался создать файл свойств в том же компоненте aefw.propertyValues.aefw.props указывает на propertyPlaceholder боб.

...