簡體   English   中英

從jndi注入屬性

[英]inject Property from jndi

我的應用使用spring,在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>
...

我可以通過哪種方式通過context.xml(例如String字段)為Properties字段注入值?

Context.xml不能包含具有Map類型的Environment。 (合法類型為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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM