terça-feira, março 13, 2007

Google Guice - Um ultra-lightweight dependency injection container

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 um
framework 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:
@Inject
public 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.

Nenhum comentário: