从 jndi 注入 属性
inject Property from jndi
我的应用程序使用 spring,在 tomcat
上运行
我有class
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>
...
我可以用哪种方式通过 context.xml 为 Properties 字段注入值,例如 String 字段?
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)
但是您可以在部署中包含一个 属性 文件并通过环境元素引用该文件的路径。然后只需将 属性 文件的内容注入到您的 bean 中即可。
<jee:jndi-lookup
id="beanConfigPath"
jndi-name="CONFIG_PATH"/>
<bean ...>
...
<util:properties id="properties" location="${beanConfigPath}" />
</bean>
我的应用程序使用 spring,在 tomcat
上运行我有class
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>
...
我可以用哪种方式通过 context.xml 为 Properties 字段注入值,例如 String 字段?
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)
但是您可以在部署中包含一个 属性 文件并通过环境元素引用该文件的路径。然后只需将 属性 文件的内容注入到您的 bean 中即可。
<jee:jndi-lookup
id="beanConfigPath"
jndi-name="CONFIG_PATH"/>
<bean ...>
...
<util:properties id="properties" location="${beanConfigPath}" />
</bean>