Spring - Carregar o mesmo applicationcontext.xml em aplicações web e não-web

Pessoal tenho uma aplicação cuja UI é parte em swing e parte Web. Preciso carregar o applicationcontext.xml do spring em uma apliacação swing, MAS este mesmo arquivo tem que ser utilizado por uma aplicação WEB.

Se eu separar o arquivo não haverá problemas(applicationcontextSwing.xml e applicationcontextWeb.xml), mas eu gostaria de saber se é possível utilizar somente um.

OBS: clique aqui, para ver como carregar o applicationcontext.xml em aplicações não-web

Desde já agradeço!

É possivel sim, basta passar o caminho correto para sua applicacao web, configurando o caminho do applicationContext.xml no arquivo web.xml

<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param>

A forma de carregar o applicationContext.xml em aplicacao JSE voce ja postou, basta utilizar o mesmo local. :wink:

Mas como eu acesso WEB-INF pelo JSE?

isso não funciona:


ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("\\web\\WEB-INF\\applicationContext.xml");

Creio que na aplicacao JSE voce deve passar o caminho completo de onde esta o arquivo applicationContext.xml

Ola.
Já passei por essa situação.
Precisei colocar os contextos no ar para uns testes automatizados mas não precisaria colocar o container web no ar.

A solução que fiz é o /WEB-INF/applicationContext.xml ser um contexto que apenas importa outros contextos,
mais ou menos assim:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
	<import resource="classpath:webApplicationContext.xml"/>
	<import resource="classpath:webContext.xml"/>
	<import resource="classpath:persistenceContext.xml"/>
	<import resource="classpath:remoteContext.xml"/>
</beans>

Esses outros contextos estão nos resources do projeto, por exemplo, no src/main/resources.
Então na aplicação desktop tu simplesmente carrega esses outros contextos direto com o ClassPathXmlApplicationContext.