3
respostas

Component Scan com 3 projetos.

Tenho um projeto, e estou quebrando ele em 3 novos projetos e utilizando alguns dos conceitos da arquitetura hexagonal. Um dos projetos será o commons, onde irá conter as entidades, os repository, service e validadores Os outros dois projetos teram a dependencia do commons, porém estou com problemas para conseguir acessar os Services criados no Commons, os mesmos ficam como null. Minha classe de configuração, também fica no Commons, e extendo ela nos demais projetos, nela utilizo o @EnableJpaRepositories e @ComponentScan com a classe dos services, porém mesmo assim nos consigo criar uma instancia do service nos outros projetos. Poderiam me ajudar por favor.

3 respostas

Oi José! Tudo bem?

Não entendi muito bem o problema, contudo digo que o spring consegue buscar entidades e injetar dependencias provenientes de projetos multi-módulos.

Você tem essas configurações no seu projeto?

@Configuration @ComponentScan(basePackages="com.yourcompany.yourproject") @EnableAutoConfiguration @EnableJpaRepositories(basePackages="com.yourcompany.yourproject") @EntityScan(basePackages="com.yourcompany.yourproject")

Espero ter ajudado,

Olá Rodrigo, estou utilizando essas configurações sim, entretanto, mesmo assim, meu projeto externo não consegue instanciar meus services do commons.

em meus basePackages estou passando apenas o package base (com.mycompany.myproject), e não os subpacotes, como estou implementando uma arquitetura hexagonal, meus services/repository e entity, ficaram da seguinte forma:

Domain com.mycompany.myproject.core.domain.domain1 com.mycompany.myproject.core.domain.domain2 com.mycompany.myproject.core.domain.domain3 ....

Service: com.mycompany.myproject.core.application.service1 com.mycompany.myproject.core.application.service2 com.mycompany.myproject.core.application.service3 ...

Repository com.mycompany.myproject.adapters.jpa.repo1 com.mycompany.myproject.adapters.jpa.repo2 com.mycompany.myproject.adapters.jpa.repo3 ....

Oi José!

Poderia disponibilizar um git repo para que eu possa dar uma olhada nas suas configurações, sem compromisso?

  1. Qualquer repositório git e permissão
  2. Instruções de build da sua aplicação (maven, ant, gradle, etc.)

Penso que apenas dessa forma eu poderia reproduzir o problema e lhe propor uma solução que lhe atenda. Seja essa configuracional, construcional ou programática.

Atenciosamente,

Rodrigo