1

我正在尝试集成Guice 3到我的Struts应用程序中。这就是我所做的: 界面:

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

执行:

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

我创建了Guice模块:

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

然后我在我的Action

@Inject
private PersonDAO personDAO;

问题是它personDAO始终为空。

问题:如何正确集成Guice到我的应用程序中

问候。

4

1 回答 1

0

从未尝试过,但是:

  1. 在你的项目中包含一个为与 Guice 交互而编写的 Struts2 插件(Guice-Struts2 插件);
    例如,使用 Guice 4 和 Maven,在您的 pom.xml 中它将是:

    <dependency>
        <groupId>com.google.inject.extensions</groupId>
        <artifactId>guice-struts2</artifactId>
        <version>4.1.0</version>
    </dependency>
    
  2. 然后,在您的 struts.xml 中,指定ObjectFactoryguice

    <constant name="struts.objectFactory" value="guice" />
    

应该够了。

于 2017-01-17T09:16:41.250 回答