Frage

Ich baue eine neue Web-Anwendung, die Linux, Apache, Tomcat, Wicket, JPA / Hibernate und MySQL verwendet. Mein primäres Bedürfnis ist Dependency Injection, die beide Frühling und Guice gut tun können. Ich glaube, ich Transaktionsunterstützung benötigen, die mit Frühling und JTA kommen würde, aber ich bin nicht sicher.

Die Website wird wahrscheinlich etwa 20 Seiten hat und ich erwarte nicht, große Verkehrsprobleme.

Soll ich Frühling oder Guice?

Fühlen Sie sich frei zu stellen und followup Fragen und ich werde mein Bestes tun, diese zu aktualisieren.

War es hilfreich?

Lösung

Wenn Sie die "Do-it-all-in-Java" wie Philosophie, die Wicket folgt, dann könnten Sie Guice über Frühling bevorzugen. Es gibt keine XML-Konfiguration in Guice - es wird alles getan, was mit der Guice Module Klasse.

Zum Beispiel Ihrer Wicket WebApplication Klasse etwas könnte wie folgt aussehen:

public class SampleApplication extends WebApplication
{
    @Override
    protected void init()
    {
        addComponentInstantiationListener(
          new GuiceComponentInjector(this, new GuiceModule()));
    }
}

Die GuiceComponentInjector stammen aus der Wicket-guice Erweiterung. Hier ist das Modul:

public class GuiceModule extends AbstractModule
{
    @Override
    protected void configure()
    {
        // Business object bindings go here.
        bind(Greetings.class).to(GreetingRepository.class);
    }
}

In diesem Beispiel Greetings ist eine Schnittstelle, durch eine konkrete GreetingRepository Klasse implementiert. Wenn Guice ein Greetings Objekt injizieren muss, wird es die Abhängigkeit mit einem GreetingRepository erfüllen.

Ich habe zusammen eine Beispielprojekt rel="nofollow, die zeigt, wie ein Wicket bauen / Guice Anwendung für Google App Engine. Sie können die App Engine Besonderheiten sicher ignorieren und darauf konzentrieren, wie die Wicket-Guice Integration funktioniert.

Andere Tipps

Wenn Sie mit Guice am Ende tun werden, auf jedem Fall überprüfen Warp Persist Hibernate, Guice Servlets für Tomcat und Wicket-guice für Wicket.

Frühling würde wahrscheinlich geben Ihnen mehr Flexibilität, aber wenn Sie nur DI brauchen dann kann Guice eine bessere Wahl sein.

Es ist schwierig zu beantworten, wie Frühling so viele Funktionen, die die DAO flexibler machen würden, und arbeitet gut mit Hibernate. Es würde helfen, wenn Sie mehr Anforderungen an hatten, was Sie suchen.

Hier sind ein paar Vergleiche zwischen Frühling und Guice und Frühling, Guice und Picocontainer.

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

http://www.christianschenk.org/ Blog / Vergleich-zwischen-guice-picocontainer-und-Feder /

Vergessen Sie nicht, CDI / JSR-299, einen Teil der Java EE 6. können Sie Schweiß Wicket integrieren Wicket mit CDI.

(solange man den Schweiß Implementierung verwenden (wie Glassfish v3 und JBoss 6 tun), aber der Schweiß Wicket ist eher klein, so könnte man es wohl anpassen, wenn nötig).

ich es geschafft, Wicket zu bekommen 1.4 + Schweiß Wicket + Wicket-contrib-JavaEE + EJB 3.1 + JPA 2.0 + Wicket-Sicherheit (SWARM) + Spring Security 3 + Feder 3 zusammen in einem kleinen Proof of concept-Anwendung ausgeführt wird. Das ist ein bisschen zu viele Frameworks aber wird wahrscheinlich feder Sicherheit & Feder fallen, da sie überflüssig erscheinen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top