2009-09-23 10 views
14

私は、Linux、Apache、Tomcat、Wicket、JPA/Hibernate、およびMySQLを使用する新しいWebアプリケーションを構築しています。私の主な必要性は、春とGuiceの両方がうまくいくDependency Injectionです。 SpringとJTAにはトランザクションサポートが必要だとは思いますが、わかりません。Tomcat/Wicket/HibernateプロジェクトにSpringやGuiceを使うべきですか?

サイトには約20ページが含まれていますが、巨大なトラフィックは期待できません。

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

お気軽に質問してください。これを更新するために最善を尽くします。

答えて

15

Wicketが従う "Javaでdo-it-all-in-Java"という考え方が好きなら、GuiceをSpringより優先したいかもしれません。 GuiceにはXML設定はありません。Guice Moduleクラスを使用してすべて実行されます。

たとえば、あなたのウィケットWebApplicationクラスは次のようになります。

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

GuiceComponentInjectorは改札-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オブジェクトを注入する必要がある場合、GreetingRepositoryの依存関係を満たします。

私は、Google App EngineのWicket/Guiceアプリケーションを構築する方法を示すsample projectをまとめました。 App Engineの仕様を無視して、Wicket-Guiceの統合の仕組みに焦点を当てることができます。

+0

あなたはSpringでもすべてのJavaを実行することができます... – tetsuo

5

春はおそらくより柔軟になりますが、DIが必要な場合はGuiceが良い選択になるかもしれません。

春にはDAOの柔軟性を向上させる非常に多くの機能があり、Hibernateでうまく機能するため、答えにくいです。それは、あなたが探しているもののためのより多くの要件を持っていれば助けになります。

ここでは、SpringとGuice、Spring、Guice、Picocontainerの2つの比較を示します。

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

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

7

あなたは間違いなく、休止状態のためにTomcatのGuice ServletWarp Persistをチェックアウトし、Guiceの一緒に行く終わると、Wicketのためwicket-guiceない場合。

0

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

(Weld実装(GlassFish v3とJBoss 6 do)を使用している限り、ウェルドウィッケットはかなり小さいので、必要に応じてそれを適応させることができます)。

私はWicket 1.4 + weld-wicket + wicket-contrib-javaee + EJB 3.1 + JPA 2.0 + wicket-security (SWARM) + Spring Security 3 + Spring 3を小さな概念実証アプリケーションで一緒に稼働させることができました。これはあまりにも多くのフレームワークですが、冗長性があるように春のセキュリティ&が春になる可能性があります。

関連する問題