Java WAR - Carregar beans Spring de um JAR externo
Eu gostaria de carregar dentro do meu Spring Web Application da CVC (empacotado como WAR) alguns beans de estrutura Spring anotados com@Service
de uma jarra externa, que é responsável por acessar um banco de dados elocalizado no caminho de classe em / WEB-INF / lib. Se possível, seria desejável carregá-los automaticamente usando o@Autowired
anotação.
Eu segui com sucesso a solução nestelink1:
this.ctx = new ClassPathXmlApplicationContext("services-context.xml");
this.myAService = ctx.getBean("myAService");
No entanto, esta solução usa a função Spring APIgetBean que é considerada uma prática ruimlink2).
Eu também tentei, sem sorte, mais duas coisas para carregar o applicationContext do jar externo:
AppContext.xml da WAR:
<import resource="classpath*:/WEB-INF/lib/pathToExternalJar/applicationContext.xml">
WAR´s web xml -> carrega o appContext do jar como descrito aqui (link3). (por exemplo, * applicationContext.xml):
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:localSpringContext.xml
classpath:*applicationContext.xml
</param-value>
</context-param>
Qual é a melhor abordagem para carregar os beans corretamente e como isso deve ser feito?