Ввести свойство из 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>