0

我有以下简单页面:

public class Login extends BasePage {
    private UserDao userDao;

    @Inject
    public void setUserDao(UserDao userDao) {
        System.out.println("setUserDao");
        this.userDao = userDao;
    }

Guice 在应用程序中使用以下代码初始化:

@Override
protected void init() {
    Module myBatisModule = new XMLMyBatisModule() {
        @Override
        protected void initialize() {
        }
    };

    IbdGuiceModule ibdGuiceModule = new IbdGuiceModule();

    getComponentInstantiationListeners().add(new GuiceComponentInjector(this, myBatisModule, ibdGuiceModule));
}

设置器注入不起作用。setUserDao 方法永远不会被调用,并且 userDao 为空。

如果我将 @Inject 注释移动到该字段,则此方法有效(仍然未调用 setUserDao,但已初始化字段值)。

如何使用setter注入?

4

1 回答 1

1

Wicket 仅支持字段注入。在 Google 中搜索“方法注入被认为有害”以了解详细信息。

于 2012-08-21T15:10:11.117 回答