Olá, tenho uma duvida em um projeto que estou trabalhando. Este projeto esta dividio em três modulos(1- Apresentação, 2 - Modelo, 3 - Serviço) cada um desses modulos possui seus arquivos "pom" e também arquivos de ".xml" como ex: applicationContext.xml".
O modulo 1 - Apresentação: tem a função de Visão, é a camada que faz a interação com o usuário(paginas de erro, paginas xhtml, e o template) pagina ;xhtml com primefaces, neste existe a camada CONTROLLER, composta pelas Actions do sistema. Elas são responsáveis pelo comportamento da aplicação da forma como o usuário vê e esta regras referentes ao fluxo de funcionalidades do sistema (controller) e a validação de campos oriundos dos formulários apresentados para o usuário. Acessará única e exclusivamente o módulo de domínio.
O Modulo 2 - Negócio : composta pelas classes que realizam o negócio do sistema. este possui classes classes Managers funcionarão como componentes do Spring dentro do sistema que poderão, a qualquer momento, serem injetados dentro de outra classe por meio das annotations do Spring.
O Modulo 3 - Service : este com classes para consumir webservices a definir ainda.
Eu gostaria de mais informações como este padrão trabalha na comunicação entre cada modulo, visto que cada um é como se fosse um projeto a parte, mais pelo que da perceber a camada Apresentação precisa da Model para existir. Outra coisa no "pom" da pasta raiz existe a indiação dos modulos assim :
<modules>
<module>sicel-dominio</module>
<module>sicel-servico</module>
<module>sicel-apresentacao</module>
</modules>
As classes manager no controller do modulo de apresntação, elas extende classe do modulo domino. Também a camada apresentação utilização com servidor o jboss, ja outros modulos (.jar)não aparece quando vou adicionar na aba server. Espero que tenha consigo trasmitir minha duvida, gostaria também de algum curso aqui no alura em que eu possa estudar este padrão. Obrigado!
Ha mais um coisa, na camada Apresentação ela faz referencia a arquivo ".xml" da camada de Negocio, Ex :
<context:annotation-config />
<context:component-scan base-package="br.com">
<context:include-filter type="regex" expression="br.com.administrativa.controller.*Action" />
<context:include-filter type="regex" expression="br.com.administrativa.converter.*Converter" />
</context:component-scan>
<import resource="classpath*:arqsConfig/spring/applicationContext-dominio-01.xml" />
<import resource="classpath*:arqsConfig/spring/applicationContext-job-06.xml" />