Já faz alguns anos que o Google e a SpringSource fornecem frameworks de injeção de dependência através de seus projetos open source chamado Google Guice e Spring Framework, respectivamente. No entanto, há até pouco tempo atrás, não havia um padrão independente para que os desenvolvedores mudassem de framework sem ter que atualizar seus arquivos fonte. Mas se tudo ocorrer como planejado, algumas das principais anotações e interfaces de injeção de dependência serão nativas no Java SDK.
Há poucas semanas atrás, o Google anunciou sua parceria com a SpringSource com o intuito de
padronizar um conjunto de anotações consistente e não controverso que permita que classes injetáveis possam ser portadas entre os vários frameworks.
Há alguns dias atrás, uma proposta oficial, JSR 330: Dependency Injection for Java, foi enviada para o JCP (Java Community Process). A proposta tem como alvo a plataforma Java SE, mínimo versão 5, mas visa estabelecer uma base que também será útil no Java EE. O conjunto inicial de anotações proposto inclui:
-
@Inject – Identificar os contrutores, métodos e campos injetáveis.
-
@Qualifier - Identificar anotações de qualificadores
-
@Scope - Identificar anotações de escopo
-
@Named - Qualificador baseado em string
-
@Singleton - Identificar um tipo que o injetor instância uma única vez
O processo inteiro, desde as anotações iniciais até a submissão do JSR e tudo a partir daí está aberto ao público, permitindo que a comunidade dê seu feedback ao longo do processo. De fato, a comunidade já deu várias opiniões em vários blogs sobre a parceria, a proposta e até sobre a utilidade disso tudo.
Abaixo segue uma enquete para que possamos avaliar o que a comunidade InfoQ está pensando. Então vá em frente e vote; os resultados podem ser bem interessantes.