2010-05-05 18 views
5

Estoy buscando un contenedor IoC fácil de usar para aplicaciones GUI escritas en Java/Scala.Inversión simple del marco de control para Java/Scala

Debe admitir Convención sobre configuración, gestión del ciclo de vida, configuración en código (preferiblemente sin ningún XML necesario en absoluto) y comprobar las dependencias en tiempo de compilación tanto como sea posible. Algo similar a Autofac sería perfecto.

Respuesta

12

Parece que necesita algo como Google Guice.

Solía ​​bastantes contenedores IoC para Java (por ejemplo, PicoContainer), pero todos han estado a la sombra de Spring desde hace años. Aunque la primavera es un poco exagerada para sus necesidades.

Guice ha reiniciado una competencia saludable.

+0

Esa es la opción que estoy viendo actualmente, pero estoy esperando aprender sobre alternativas. –

+0

Sí, Spring es definitivamente demasiado pesado. –

+0

Incluso Spring 3.0 con solo un núcleo de resorte, y usando annotation-config? – Nate

3

Google Guice es bastante bueno:

http://code.google.com/p/google-guice/

Usted no tiene ninguna suciedad XML o bien, sólo puede crear mediante programación del módulo y escribir las cosas en que, por ejemplo, una interfaz de unión (TRANSACTIONLOG) a una clase de implementación (DatabaseTransactionLog):

public class BillingModule extends AbstractModule { 
    @Override 
    protected void configure() { 
    bind(TransactionLog.class).to(DatabaseTransactionLog.class); 
    } 
} 
+0

+ 1 para Guice, y aquí hay una lectura interesante sobre la migración de Plexus a Guice-2.0 http://www.sonatype.com/people/2010/01/from-plexus-to-guice-1-why-guice/ – crowne

+1

Guice patea a Spring justo en las bolas – Jon

1

PicoContainer es una, de servicio completo altamente integrable, Inversion de contenedor de control (COI) para componentes cumplan el patrón de inyección de dependencia. El proyecto comenzó en 2003 y fue pionero en el auto-cableado de Constructor Injection. También es de código abierto y, por lo tanto, de uso gratuito. La licencia es BSD y, por lo tanto, puede usarla de forma segura con software comercial u otro software de código abierto.

Cuestiones relacionadas