использование поиска свойств JNDI для определения импорта пружины - PullRequest
0 голосов
/ 22 декабря 2011

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

http://blog.springsource.com/2011/02/15/spring-3-1-m1-unified-property-management/ /1016879/import-konfiguratsionnogo-faila-spring-na-osnove-svoistva-v-faile-properties

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

<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, и кажется, что приоритетное значение ставит импорт перед JNDI.

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

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

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

1 Ответ

1 голос
/ 22 декабря 2011

Я верю, что тебе придется сделать что-то подобное. Я не проверял его, но в основном метод setLocations в PropertyPlaceholderConfigurer принимает массив Resource (в нашем случае 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>

Проверьте это обсуждение здесь . Зависимость поможет установить зависимости для конкретного компонента.

...