2010-05-05 12 views
5

Je cherche un conteneur IoC simple à utiliser pour les applications GUI écrites en Java/Scala. Il devrait prendre en charge la Convention over Configuration, la gestion du cycle de vie, la configuration dans le code (de préférence sans XML) et la vérification des dépendances au moment de la compilation autant que possible. Quelque chose de similaire à Autofac serait parfait.Structure Simple Inversion of Control pour Java/Scala

Répondre

12

On dirait que vous avez besoin de quelque chose comme Google Guice.

Il y avait un certain nombre de conteneurs IoC pour Java (par exemple PicoContainer), mais ils sont tous dans l'ombre du printemps depuis des années. Le printemps est probablement un peu exagéré pour vos besoins, cependant.

Guice a repris une saine compétition.

+0

C'est l'option que je regarde actuellement, mais je J'espère apprendre des alternatives. –

+0

Oui, le printemps est vraiment trop lourd. –

+0

Même Spring 3.0 avec juste un noyau de ressort, et en utilisant annotation-config? – Nate

3

Google Guice est assez bonne:

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

Vous n'ont pas de gunk XML soit, il vous suffit de créer le module programatically et écrire des choses ensemble dans ce, par exemple, la liaison d'une interface (TRANSACTIONLOG) à une classe de mise en œuvre (DatabaseTransactionLog):

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

+ 1 pour Guice, et voici une lecture intéressante sur le portage de Plexus à Guice-2.0 http://www.sonatype.com/people/2010/01/from-plexus-to-guice-1-why-guice/ – crowne

+1

Guice donne un coup de pied dans les balles – Jon

1

PicoContainer est un conteneur pour les composants hautement intégrable, service complet, de l'inversion de contrôle (IoC) honorent le modèle d'injection de dépendance. Le projet a débuté en 2003 et a été le pionnier du câblage automatique Constructor Injection. C'est aussi Open Source et donc gratuit à utiliser. La licence est BSD et vous pouvez donc l'utiliser en toute sécurité avec un logiciel commercial ou autre logiciel open source.