Ввести свойство из jndi

Мое приложение использует весну, работает на tomcat

у меня урок

public class Entity{
    private String field;
    private Properties properties;

...geters/setters...
}

и context.xml

<?xml version='1.0' encoding='utf-8'?>
<Context>
    <Environment name="field.name" value="value" type="java.lang.String" override="false" />
</Context>

и spring.xml

...
    <bean id="entity" class="com.my.model.Entity">
        <property name="field">
            <jee:jndi-lookup jndi-name="java:comp/env/field.name" />
        </property>
        <property name="properties">
            <value>
                key1=value1
                key2=value2
                key3=value3
            </value>
        </property>
    </bean>
...

Каким образом я могу ввести значения для поля Properties через context.xml, такое поле String?

1 ответ

Решение

Context.xml не может содержать среду с типом карты. (Допустимые типы: java.lang.Boolean, java.lang.Byte, java.lang.Character, java.lang.Double, java.lang.Float, java.lang.Integer, java.lang.Long, java.lang.Short, или java.lang.String)

Но вы можете включить файл свойств в ваше развертывание и ссылаться на путь этого файла через элемент Environment. Тогда это просто вопрос внедрения содержимого файла свойств в ваш bean-компонент.

<jee:jndi-lookup 
     id="beanConfigPath" 
     jndi-name="CONFIG_PATH"/>

<bean ...>
    ...
    <util:properties id="properties" location="${beanConfigPath}" />
</bean>
Другие вопросы по тегам