usar springlayout ejemplo codigo java spring guice cdi

java - codigo - springlayout ejemplo



¿Cuál es el equivalente de Spring para la instancia de CDI o el proveedor de Guices? (2)

Entonces, después de mucho investigar, descubrí que Spring es compatible con JSR-330. Este JSR define una API simple (toda la especificación es literalmente solo esta API) que estandariza varias interfaces de inyección de dependencia, anotaciones y comportamientos.

A diferencia de FactoryBean de Spring, la interfaz javax.inject.Provider no lanza Excepción al obtener la referencia de bean. Además, aún necesitaría definir este FactoryBean en algún lugar (lea XML o la clase @Configuration , y esto es subóptimo).

Debido a un error, en la versión 3.1.1 actual, el javax.inject.Provider no funciona . Funciona en la primavera 3.1.0.

Para usarlo, simplemente necesita incluir el javax.inject jar: si usa maven puede:

<dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> </dependency>

Spring lo detectará, y desde ese momento podrás simplemente:

@Inject Provider<MyObject> myObjectInstance; //... MyObject myObjectInstance.get();

Como en el ejemplo de Guice, ya que es la misma API.

A pesar de mi comentario anterior a Konstantin, Spring crea el proveedor por sí mismo. (Lo estaba probando con Spring 3.1.1 y me encontré con este problema de regresión de Spring Provider )

En CDI puede definir un objeto que le dará elementos de un tipo determinado, usando:

@Inject Instance<MyObject> myObjectInstance; //... MyObject myObjectInstance.get();

Del mismo modo en Guice puedes hacer:

@Inject Provider<MyObject> myObjectInstance; //... MyObject myObjectInstance.get();

Me pregunto si hay un constructo similar en Spring, o si debe usar ApplicationContext para obtener la referencia.