Pergunta

Estou construindo uma nova aplicação web que usa Linux, Apache, Tomcat, Wicket, JPA / Hibernate e MySQL. A minha necessidade primária é Dependency Injection, que tanto Primavera e Guice pode fazer bem. Acho que preciso de suporte a transações que viria com Primavera e JTA, mas eu não tenho certeza.

O site irá provavelmente tem cerca de 20 páginas e eu não vou esperar o tráfego enorme.

Devo usar Primavera ou Guice?

Sinta-se livre para perguntar e acompanhamento perguntas e eu vou fazer o meu melhor para atualizar esta.

Foi útil?

Solução

Se você gosta da filosofia "do-it-all-in-Java" que Wicket segue, então você pode preferir Guice ao longo da Primavera. Não há nenhuma configuração XML no Guice - tudo é feito usando o Guice Module classe.

Por exemplo, sua classe WebApplication Wicket pode ser algo como isto:

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

O GuiceComponentInjector vem da extensão wicket-guice. Aqui está o Módulo:

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

Neste exemplo, Greetings é uma interface implementada por uma classe concreta GreetingRepository. Quando Guice precisa injetar um objeto Greetings, ele irá satisfazer a dependência com um GreetingRepository.

Eu uni um amostra projeto que demonstra como construir um Wicket / aplicação Guice para o Google App Engine. Você pode ignorar as especificidades do Google App Engine e se concentrar em como as obras de integração Wicket-Guice.

Outras dicas

Se você acabar indo com Guice, definitivamente verificar para fora urdidura Persistir para Hibernate, Guice Servlet para Tomcat, e wicket-guice para wicket.

Spring provavelmente dar-lhe mais flexibilidade, mas se você só precisa DI então Guice pode ser uma escolha melhor.

É difícil de responder como Primavera tem tantas características que fariam o DAO mais flexível, e funciona bem com Hibernate. Seria bom se você tivesse mais exigências para o que você está procurando.

Aqui estão algumas comparações entre Primavera e Guice e Spring, Guice e PicoContainer.

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

http://www.christianschenk.org/ blogue / comparison-entre-guice-PicoContainer-and-primavera /

Não esqueça CDI / JSR-299, parte do Java EE 6. Você pode usar solda-postigo para integrar postigo com CDI.

(desde que você está usando a implementação de solda (como GlassFish v3 e JBoss 6 fazer), mas a solda-postigo é bastante pequeno para que você provavelmente poderia adaptá-lo, se necessário).

Eu consegui Wicket 1.4 + solda-postigo + wicket-contrib-javaee + EJB 3.1 + JPA 2.0 + wicket-security (SWARM) + Spring Security 3 + Spring 3 correndo juntos em uma pequena prova de aplicação conceito. Isso é um pouco demais estruturas no entanto, provavelmente vai cair spring-security & primavera como eles aparecem redundante.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top