Estou testando uma arquitetura que contém 2 maven modules(A,B) como teste. Ambos geram JARs específicos, que contém os seus applicationContext. Acontece que, o module A faz uma referência ao module B (que contém a minha dao, etc). E assim sendo, dentro do module A, eu tenho uma classe de teste. Nessa classe de teste, eu utilizo o @Autowired, todavia, quando ele vai carregar a dependência, ele não consegue carregar pois não carregou o ApplicationContext.xml do module B, na realidade, ele não está sendo usado em modo de execução. Assim sendo, ele não carrega e estoura exceção.
Como devo proceder em relação aos ApplicationContext? Está correto cada cliente ter um?
É normal você ter mais de um “xxContext.xml”, distribuídos em vários JARs. Normalmente, o applicationContext “principal” (da aplicação que de fato será executada) importa todos os outros, através de algo assim:
<beans>
<!-- Quando está no mesmo projeto -->
<import resource="applicationContext-services.xml"/>
<import resource="applicationContext-security.xml"/>
<import resource="/resources/beans.xml"/>
<!-- Importando de fontes externas (busca no classpath) -->
<import resource="classpath:applicationContext-test.xml" />
<!-- Importando todos os arquivos que encontrar, caso encontre mais de um com o mesmo nome -->
<import resource="classpath*:applicationContext-beans.xml" />
</beans>