Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Injeção de dependencia fica como?

Estou ainda no modulo 4, mas me surgiu a duvida ao ver sido mostrado que é trabalhado a inversao de dependencia, e que nao devo trazer camadas de infraestrutura para o domínio.

Porem quando uso spring ou um javaEE da vida, tenho as vantagens em usar a injeção de dependencias do framework, como o controle de transação por exemplo.

Nessa situação, o que você costuma fazer/utilizar?

3 respostas
solução!

Oi Ramon,

Tais conceitos podem ser utilizados apenas nas outras camadas(web, bd, etc.) e não na camada de domínio.

Modularizando a aplicação dá para isolar essa parte de infra da camada de domínio.

Bons estudos!

Acho que consegui compreender Rodrigo.

Porém vieram mais dúvidas sobre a camada de BD, no caso ela deveria ter sua implementação para cada framework que eu utilizar (javaEE, spring, quarkus), ou seria um bom padrão ter a camada JPA ou JDBC como comum entre os frameworks.

A parte da injeção de dependência eu fiz gerando uma classe factory com os beans no final das contas.

Cheguei a disponibilizar no repositório https://github.com/ramonnteixeira/clean-architecture-poc

Nele eu fiz o "core" com o modelo, application e infra JDBC, depois usei ele em módulos distintos, 1 com Spark Framework e outro com Spring Boot.

Vlw.

Compartilhando um pouco da minha experiência, em um projeto real que trabalhei com Clean Arch existia uma camada (módulo) adicional específica de configuração onde todos os Beans era preparados (além de ser a camada onde dava o Run no SpringBoot, por exemplo).

Todas as implementações de dependências externas ficavam em uma camada (módulo) chamado gateway. Lá tinham as implementações de chamadas ao banco com JDBC, chamadas a APIs com RESTTemplate, consumo e publicação em filas e tópicos, etc.