2011-12-22 2 views
0

Я пытаюсь импортировать файл свойств, чтобы определить, какой импорт мне нужен. я посмотрел на следующий, и они, кажется, не имеют точного ответа:с использованием поиска JNDI свойств для определения импорта пружины

http://blog.springsource.com/2011/02/15/spring-3-1-m1-unified-property-management/ http://stackoverflow.com/questions/1520055/import-spring-config-file-based-on-property -in-properties-file

они близки, но не совсем то, что я ищу.

<beans:bean id="propertiesResource" class="org.springframework.jndi.JndiObjectFactoryBean" 
    p:jndiName="java:comp/env/url/resource/avcs" p:defaultObject="classpath:avcs.properties"/> 

<beans:bean id="properties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 
    <beans:property name="location" ref="propertiesResource"/> 
</beans:bean> 

<context:property-placeholder properties-ref="propertiesResource" system-properties-mode="ENVIRONMENT"/> 

<beans:import resource="applicationContext.${application.context.import}.xml"/> 

Поэтому мне нужно использовать JNDI просмотровые, чтобы получить файл, а затем загрузить свойства затем импортировать конкретный контекст приложения. Если бы я должен был использовать свойство-заполнитель только с ресурсом пути класса, то все было бы хорошо, я верю, но в этой ситуации мне нужно сначала искать JNDI, и кажется, что orfer of priorence ставит импорт перед JNDI ,

Любой шанс, что у кого-нибудь есть ответ для меня?

У меня есть несколько других идей, но я просто хотел посмотреть, есть ли кто-нибудь, кто уже мог бы это решить.

Заранее спасибо.

+0

BTW Я использую весну 3.1.0.RELEASE – peekay

ответ

1

Я считаю, что вам нужно будет сделать что-то подобное. Я не тестировал его, но в основном метод setLocations в PropertyPlaceholderConfigurer принимает массив ресурсов (в нашем случае UrlResource - http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/core/io/UrlResource.html), который, в свою очередь, имеет конструктор с файловым путем.

<jee:jndi-lookup id="mypropsfile1" jndi-name="myPropsFile1" default-value="file:///C:/defaultPath" resource-ref="true"/> 
<jee:jndi-lookup id="mypropsfile2" jndi-name="myPropsFile2" resource-ref="true"/> 

<bean id="propertyConfigurer" 
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" depends-on="mypropsfile1,mypropsfile2"> 
    <property name="ignoreUnresolvablePlaceholders" value="true"/> 
    <property name="locations"> 
     <list> 
      <bean class="org.springframework.core.io.UrlResource"> 
       <constructor-arg><ref bean="mypropsfile1"/></constructor-arg> 
      </bean> 
      <bean class="org.springframework.core.io.UrlResource"> 
       <constructor-arg><ref bean="myPropsFile2"/></constructor-arg> 
      </bean> 
     </list> 

    </property> 
</bean> 

Отметьте для обсуждения here. Это зависит от того, как установить зависимости для конкретного компонента.

+0

Я закончил с помощью решения, размещенного здесь: http://stackoverflow.com/questions/1520055/import-spring-config-file-based-on-property-in -properties-файл – peekay