Как я могу получить доступ к ресурсам родительского пути к классам с помощью Spring 2.5.x? - PullRequest
0 голосов
/ 24 июня 2010

В моей среде Websphere Portal я пытаюсь настроить bean-компонент, который использует ресурс, найденный вне WAR (он находится в некотором родительском пути к классу для WAS).Я уверен, что он есть, потому что я могу получить к нему доступ с помощью следующего:

URL url = getClass().getResource("/config/someProps.properties");

Однако в моем приложении SpringContext.xml следующее не работает:

<bean id="initBean" class="foo.PropInitializer">
    <constructor-arg value="classpath:/config/someProps.properties"/>   
</bean>

Если яудалите "classpath:", это тоже не поможет.

В настоящее время я загружаю контекст Spring с помощью ContextLoaderListener, но кажется, что родительский путь к классам не доступен / недоступен для Spring.

Есть ли способ (с помощью Spring config) также загрузить родительский путь к классам?

Ответы [ 2 ]

0 голосов
/ 24 июня 2010

Мне удалось (вроде) решить мой вопрос.

В итоге я создал фабричный класс, который я могу использовать для загрузки ресурсов из пути к классам:

<bean name="applicationConfig" class="foo.io.ResourceLoader">
    <constructor-arg value="/config/someProps.properties" />
</bean>

Это основано на существующем классе Spring: org.springframework.core.io.ClassPathResource

К сожалению, класс Spring не совсем работал в моей ситуации (у меня возникали некоторые проблемы с неоднозначностью свойств в методе, в который я передавал полученный бин), поэтому я создал свой собственный класс, который возвращал точный тип. 1009 *

В любом случае, я ожидаю, что использование пружин ClassPathResource будет работать в большинстве ситуаций.

0 голосов
/ 24 июня 2010

Попробуйте передать classpath *: вместо classpath:

<bean id="initBean" class="foo.PropInitializer">
    <constructor-arg value="classpath*:/config/someProps.properties"/>   
</bean>

Более подробное объяснение можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...