Почему Spring пытается использовать переменную строки свойств вместо значения? - PullRequest
0 голосов
/ 13 августа 2010

Вот проблема в двух словах:

<bean id="handlerFactory" class="com.westfieldgrp.audit.jdklogging.cpm.CPMHandlerFactory">
    <property name="schemaName" value="${env.audit.databaseSchema}" />
    <property name="bufferSize" value="${env.audit.bufferSize}" /> 
    <property name="threaded" value="${env.audit.threadedAuditHandler}" />
    <property name="dataSourceSelector" ref="dataSourceSelector" />
</bean>

bufferSize в CPMHandlerFactory - это int.Spring не работает, потому что он пытается установить значение «$ {env.audit.bufferSize}» вместо фактического значения из файла свойств.

Теперь, когда я изменяю имя файла свойств или env.audit.bufferSize в этом файле, Spring жалуется, что не может найти свойство env.audit.bufferSize.Это говорит мне, что он МОЖЕТ найти свойство, но вместо того, чтобы установить значение «20», он пытается установить его в «$ {env.audit.bufferSize}».Кто-нибудь может объяснить, почему Spring может делать это и что я могу с этим сделать?

Содержимое файла свойств ниже:

env.audit.databaseSchema=TDB2DATA
env.audit.dataSourceName=java:comp/env/AuditDataSourceAlias
env.audit.bufferSize=20
env.audit.threadedAuditHandler=true

Спасибо, Питер

РЕДАКТИРОВАТЬ:

Найдена проблема благодаря Jamestastic ниже.Вот что это было: у нас есть «главный» файл контекста, который выглядит следующим образом:

<import resource="environmentBeans.xml" />
<import resource="serviceBeans.xml" />
<import resource="auditBeans.xml" />

Файл environmentBeans.xml содержит PropertyPlaceholderConfigurer.Проблема заключалась в том, что я добавил некоторый код, который ссылается на контекст audBeans.xml, который, конечно, не имеет конфигуратор.Я переключил его на ссылку на «основной» контекст, и он прекрасно работает.

Ключом было понимание того, почему значения не могут быть заменены: потому что не было свойства configurer.

Итак,Спасибо!

1 Ответ

1 голос
/ 13 августа 2010

Помните, что вы добавили определение bean-компонента <context:property-placeholder /> или PropertyPlaceholderConfigurer в контекст Spring?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...