Ya hace algunos años Google y SpringSource proveen frameworks de inyección de dependencia a través de sus proyectos open sources llamados Google Guice y Spring Framework, respectivamente. Igualmente, hasta hace poco tiempo atrás, no había un patrón independiente para que los desarrolladores cambiasen de framework sin tener que actualizar sus archivos fuente. Aunque si todo ocurre como lo planeado, algunas de las principales anotaciones e interfaces de inyección de dependencia serán nativas en Java SDK. 

 Hace pocas semanas atrás, Google anunció su sociedad con SpringSource con el objetivo de normalizar un conjunto de anotaciones consistente que permita que las clases inyectables puedan ser portadas entre varios frameworks.

Hace algunos días atrás, una propuesta oficial, JSR 330: Dependency Injection for Java, fue enviada para el JCP (Java Community Process). La propuesta tiene como blanco la plataforma Java SE, mínimo en la versión 5, pero intenta establecer una base que también será útil en Java EE. El conjunto inicial de anotaciones propuesta incluye:

  • @Inject - Identificar los constructores, métodos y campos inyectables.
  • @Qualifier - Identificar anotaciones de cualificadores.
  • @Scope - Identificar anotaciones de alcance.
  • @Named - Cualificador basado en string
  • @Singleton - Identificar un tipo que el inyector instancia una única vez

El proceso entero, desde las anotaciones iniciales hasta el sometimiento de JSR y todo a partir de ahí está abierto al público, permitiendo que la comunidad de su feedback a lo largo del proceso. De hecho, la comunidad ya dió varias opiniones en varios blogs sobre la sociedad, la propuesta y hasta sobre la utilidad de todo.

Sobre el JSR-330

Miembros de JCP que envian esta propuesta: Google and SpringSource

Persona de contacto: Bob Lee y Rod Johnson

Líder de la especificación: Bob Lee y Rod Johnson

Membresía inicial: Google, SpringSource

Apoyan este JSR: Joshua Bloch, Paul Hammant (ThoughtWorks, fundador de PicoContainer), Doug Lea, Tim Peierls, James Strachan, Hani Suleiman, Jason van Zyl (Maven, Plexus), Thiago H de Paula Figueiredo (Tapestry IoC)

Basado en Injeção de Dependência em Java

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw