2010-05-05 9 views
5

Ich bin auf der Suche nach einem einfach zu bedienenden IoC-Container für GUI-Anwendungen in Java/Scala geschrieben.Einfache Inversion von Control Framework für Java/Scala

Es sollte Convention over Configuration, Lifecycle Management, Konfiguration in Code (vorzugsweise ohne überhaupt XML) unterstützen und Abhängigkeiten zur Kompilierungszeit so gut wie möglich prüfen. Etwas ähnlich wie Autofac wäre perfekt.

Antwort

12

Klingt, als ob Sie etwas wie Google Guice benötigen.

Es gab eine ganze Reihe von IoC-Containern für Java (z. B. PicoContainer), aber alle stehen seit Jahren im Schatten des Frühlings. Der Frühling ist wahrscheinlich ein wenig übertrieben für Ihre Bedürfnisse.

Guice hat einige gesunde Konkurrenz neu gestartet.

+0

, dass die Option auf derzeit Ich bin auf der Suche, aber ich Ich hoffe, von Alternativen zu lernen. –

+0

Ja, Frühling ist definitiv viel zu schwer. –

+0

Sogar Spring 3.0 mit nur Federkern und Annotation-Config verwenden? – Nate

3

Google Guice ist ziemlich gut:

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

Sie haben keine XML-klebrige Masse, können Sie entweder nur Modul programmatisch erstellen und Dinge schreiben zusammen, dass, zum Beispiel die Bindung über eine Schnittstelle (TransactionLog) zu ein Implementierungsklasse (DatabaseTransactionLog):

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

+ 1 für Guice, und hier ist eine interessante Lektüre über die Portierung von Plexus zu Guice-2.0 http://www.sonatype.com/people/2010/01/from-plexus-to-guice-1-why-guice/ – crowne

+1

Guice tritt Spring direkt in die Eier – Jon

1

PicoContainer ist ein hoch embeddable, Full-Service, Inversion of Control (IOC) Behälter für die Komponenten des Einspritzmuster Dependency würdigen. Das Projekt begann 2003 und war wegweisend für die Autoverkabelung von Constructor Injection. Es ist auch Open Source und daher kostenlos zu benutzen. Die Lizenz ist BSD und somit können Sie diese mit kommerzieller oder anderer Open-Source-Software sicher verwenden.

Verwandte Themen