spring context jndi查找属性包含所有道具,包括系统道具,而不仅仅是我需要的一套道具

时间:2013-01-04 19:16:28

标签: java spring servlets glassfish

我正在使用glassfish 3.1,spring 3.2和jdk 1.7。

我在Glassfish中配置了两个自定义JNDI资源。一个叫做'config',另一个叫'映射'。但是当我在代码中引用其中一个时,它实际上具有两个属性和所有系统属性(catalina.base等)。我只想要一套,而不是全部3套。

我设置了所以我在spring上下文文件中获取了属性:

<jee:jndi-lookup id="mappingsJndi" jndi-name="mappings" resource-ref="true" />
<bean id="propertyMappings" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
        <property name="ignoreUnresolvablePlaceholders" value="true"/>
        <property name="propertiesArray">
            <list>
                <ref bean="mappingsJndi"/>
            </list>
        </property>
    </bean>

我在servlet中引用它。它是这样注入的:

@Autowired
Properties[] propertyMappings;

注入工作,但它包含3个属性对象而不是一个。有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:3)

看起来我想通了。而不是像这样引用propertyMappings bean:

@Autowired
Properties[] propertyMappings;

我只是直接引用JNDI查找:

@Autowired
Properties mappingsJndi;