2017-01-17 4 views
1

私はGuice 3を私のStrutsアプリケーションに統合しようとしています。 これは私がやったことです: インタフェース:Guice 3 in Struts2

public interface PersonDAO{ 
    void addPerson(String username); 
} 

が実装:

public class ServiceInjector extends AbstractModule {  
    @Override 
    protected void configure() { 
     bind(PersonDAO.class).to(PersonDAOImpl.class); 
    } 
} 

その後、私は私のActionでこのようにそれを使用します:

@Singleton 
public Class PersonDAOImpl implements PersonDAO{ 
    void addPerson(String username){ 
     // Implementation 
    } 
} 

私はGuiceモジュールを作成しました

@Inject 
private PersonDAO personDAO; 

personDAOは常にnullです。

質問:Guiceをアプリケーションに正しく統合するにはどうすればよいですか?

よろしくお願いいたします。

答えて

0

は試したことはありません、しかし:

  1. は、プロジェクトのGuice(Guice-Struts2 plugin)と対話するために書かれたStruts2のプラグインに含めます。
    例えば、Guiceの4とMavenで、あなたのpom.xmlで、それは次のようになります。

    <constant name="struts.objectFactory" value="guice" /> 
    
  2. <dependency> 
        <groupId>com.google.inject.extensions</groupId> 
        <artifactId>guice-struts2</artifactId> 
        <version>4.1.0</version> 
    </dependency> 
    
  3. 次に、あなたのstruts.xmlで、のObjectFactoryguiceであることを指定します

これで十分です。

+0

@picardは動作しましたか? –