14

Linux、Apache、Tomcat、Wicket、JPA/Hibernate、および MySQL を使用する新しい Web アプリケーションを構築しています。私の主なニーズは、Spring と Guice の両方でうまく機能する依存性注入です。Spring と JTA に付属するトランザクション サポートが必要だと思いますが、よくわかりません。

このサイトにはおそらく 20 ページほどあり、大量のトラフィックは期待できません。

Spring または Guice を使用する必要がありますか?

お気軽に質問してフォローアップの質問をしてください。これを更新するために最善を尽くします。

4

4 に答える 4

15

Wicket が従う "do-it-all-in-Java" 哲学が好きなら、Spring よりも Guice を好むかもしれません。Guice には XML 構成はありません。すべて GuiceModuleクラスを使用して行われます。

たとえば、WicketWebApplicationクラスは次のようになります。

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

GuiceComponentInjectorwicket-guice 拡張機能から来ています。モジュールは次のとおりです。

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

この例でGreetingsは、具象GreetingRepositoryクラスによって実装されるインターフェイスです。Guice がGreetingsオブジェクトを注入する必要がある場合、依存関係を a で満たしGreetingRepositoryます。

Google App Engine 用の Wicket/Guice アプリケーションを構築する方法を示すサンプル プロジェクトをまとめました。App Engine の仕様を安全に無視して、Wicket-Guice 統合がどのように機能するかに集中できます。

于 2010-02-15T13:42:33.713 に答える
7

Guice を使用する場合は、Hibernate の場合はWarp Persist、Tomcat の場合はGuice Servlet 、Wicket の場合はwicket-guiceを確認してください。

于 2009-09-23T05:14:33.537 に答える
5

おそらく Spring の方が柔軟性が高くなりますが、DI だけが必要な場合は、Guice の方が適している可能性があります。

Spring には DAO をより柔軟にする多くの機能があり、Hibernate とうまく連携するため、答えるのは難しいです。あなたが探しているものについて、より多くの要件があると助かります。

ここでは、Spring と Guice および Spring、Guice と Picocontainer の比較をいくつか示します。

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

http://www.christianschenk.org/blog/comparison-between-guice-picocontainer-and-spring/

于 2009-09-23T03:02:30.167 に答える
0

Java EE 6 の一部である CDI/JSR-299 を忘れないでください。weld -wicketを使用して、wicket を CDI と統合できます。

(ただし、Weld 実装を使用している限り (GlassFish v3 および JBoss 6 のように)、weld-wicket はかなり小さいため、必要に応じて適応させることができます)。

小さな概念実証アプリケーションで、 Wicket 1.4 + weld-wicket + wicket-contrib-javaee + EJB 3.1 + JPA 2.0 + wicket-security (SWARM) + Spring Security 3 + Spring 3 を一緒に実行することができました。ただし、フレームワークが多すぎます。冗長に見えるため、おそらく spring-security と spring が削除されます。

于 2010-02-15T21:01:39.200 に答える