TPII20162 / BankSys

BankSys is a Java-based system, for academic purpose, that simulates banking operations as object-oriented concepts.
http://www.dc.ufc.br
0 stars 1 forks source link

Implemententar Dependency Inversion Principle do SOLID com Guice #136

Closed lincolnrocha closed 6 years ago

lincolnrocha commented 7 years ago

Essa issue tem como objetivo incorporar o Dependency Inversion Principle do SOLID ao projeto. Para isso será necessário utilizar um container de injeção de dependência (ou inversão de controle). Nesse caso, o container adotado será o framework Guice da Google. Veja aqui um tutorial bem didático sobre como utilizar o Guice. Todos do time @TPII20162/class devem se envolver nessa issue.

OBS. No BankSys, a camada de visão depende da camada de serviço e a camada de serviço depende da camada de persistência.

edmilsonrobson commented 7 years ago

Tentando usar o Guice, tive problemas na hora de criar um Injector no main() de BankSys.

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableList at com.google.inject.internal.Errors.<clinit>(Errors.java:709) at com.google.inject.internal.InternalInjectorCreator.<init>(InternalInjectorCreator.java:62) at com.google.inject.Guice.createInjector(Guice.java:96) at com.google.inject.Guice.createInjector(Guice.java:73) at com.google.inject.Guice.createInjector(Guice.java:62) at banksys.view.BankSys.main(BankSys.java:25) Caused by: java.lang.ClassNotFoundException: com.google.common.collect.ImmutableList at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 6 more

Tentei buscar sobre, mas não consegui ir muito longe em resolver isso. O erro buscando essa "ImmutableList" era corrigido usando a lib Guava , mas aí outros erros surgiam no lugar, então não sei se é bem por aí.

edmilsonrobson commented 7 years ago

Quebrando a cabeça um pouco, consegui depois de descobrir que só o Guice não basta, tem que importar também essas outras libs.