A
injeção de dependência é um recurso formidável que tem se popularizado entre os desenvolvedores Java através do
Spring framework. O Google acaba de liberar o código do seu próprio framework de injeção de dependência baseado em Java 5.
Quando vi o
anúncio pensei (assimo como você também pode estar pensando),
pra quê mais umframework de injeção de dependência? Mal comecei a aprender Spring!Ainda não experimentei o framework mais pense bem -
ele esta sendo utilizado no unipresente AdWords, o sistema de anuncios do Google. As comparações com o Spring são inevitáveis. Enquanto o Spring fornece uma série de recursos ao desenvolvedor o foco do Guice (se pronuncia juice) é apenas a injeção de dependência. Utilizando recursos do Java 5 com anotações e tipos genéricos o framework dispensa o uso de arquivos XML para sua configuração e, segundo seus criadores, torna o código menor.
Um exemplo seria:
@Injectpublic void setVendaDao(VendaDao dao) { ...
}
Você pode se perguntar - E quando eu não tenho o fonte para adicionar as anotações, uso XML? Não, nesse caso você pode criar um Custom Provider, uma pequena classe Java que fara o trabalho.
Essas classes costumam ser menores e mais legíveis do que seus equivalentes arquivos XML do Spring.A qualidade do software parece inquestionável, uma vez que esta em produção em um serviço de nível mundial. Porem por estar no início eu acredito que ele possa sofrer muitas alterações ainda. Por outro lado temos o Spring que já tem uma API estável. Espero poder codificar algo em breve para poder emitir uma opinião pessoal.