Dois-je utiliser Spring ou Guice pour un projet Tomcat / Wicket / Mise en veille prolongée?

StackOverflow https://stackoverflow.com/questions/1463678

  •  13-09-2019
  •  | 
  •  

Question

Je construis une nouvelle application Web qui utilise Linux, Apache, Tomcat, Wicket, JPA / Hibernate et MySQL. Mon premier besoin est l'injection de dépendances, deux printemps et Guice peuvent bien faire. Je pense que je besoin d'aide de la transaction qui viendrait avec le printemps et JTA mais je ne suis pas sûr.

Le site aura probablement environ 20 pages et je vous attendez pas à un trafic énorme.

Dois-je utiliser Spring ou Guice?

Ne hésitez pas à poser des questions et suivi et je ferai de mon mieux pour mettre à jour ce sujet.

Était-ce utile?

La solution

Si vous aimez le "do-it-all-in Java" la philosophie qui suit Wicket, vous préférez peut-être Guice sur Spring. Il n'y a pas de configuration XML dans Guice - il est fait à l'aide du Guice Module classe .

Par exemple, votre classe Wicket de WebApplication pourrait ressembler à ceci:

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

Le GuiceComponentInjector provient de l'extension du portillon Guice. Voici le module:

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

Dans cet exemple, Greetings est une interface implémentée par une classe de GreetingRepository en béton. Lorsque Guice a besoin d'injecter un objet Greetings, il satisfera la dépendance avec un GreetingRepository.

Je l'ai mis en place un qui montre comment construire un Wicket / l'application Guice pour Google App Engine. Vous pouvez ignorer en toute sécurité les détails App Engine et de se concentrer sur la façon dont l'intégration Wicket-Guice fonctionne.

Autres conseils

Si vous finissez par aller avec Guice, vérifiez certainement Chaîne Persister Mise en veille prolongée, Guice Servlet pour Tomcat et guice-guichet pour Wicket.

Le printemps vous donnerait probablement plus de flexibilité, mais si vous avez juste besoin DI alors Guice peut être un meilleur choix.

Il est difficile de répondre au printemps a tellement de fonctionnalités qui rendraient le DAO plus souple, et fonctionne bien avec Hibernate. Il serait utile si vous aviez plus d'exigences pour ce que vous recherchez.

Voici quelques comparaisons entre le printemps et Guice et Spring, Guice et PicoContainer.

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

http://www.christianschenk.org/ blog / comparaison entre-guice-PicoContainer-et-printemps /

Ne pas oublier CDI / JSR-299, une partie de Java EE 6. Vous pouvez utiliser souder pour intégrer wicket avec le CDI guichet.

(tant que vous utilisez la mise en œuvre de soudure (comme GlassFish v3 et JBoss 6 faire), mais la soudure portillons est assez petit pour que vous puissiez probablement l'adapter si nécessaire).

J'ai réussi à Wicket 1.4 + soudure + petite porte-contrib-guichet JavaEE + EJB 3.1 + JPA 2.0 + sécurité-guichet (SWARM) + Spring Security 3 + 3 printemps courir ensemble dans une petite preuve de l'application du concept. C'est un peu trop de cadres bien, baisseront probablement au printemps et à la sécurité au printemps tels qu'ils apparaissent redondants.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top