Wicket + Guice,二传手注射不起作用

时间:2012-08-13 06:37:45

标签: inversion-of-control wicket guice setter

我有以下简单的页面:

public class Login extends BasePage {
    private UserDao userDao;

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

使用Application中的以下代码初始化Guice:

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

    IbdGuiceModule ibdGuiceModule = new IbdGuiceModule();

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

Setter注射不起作用。从不调用setUserDao方法,userDao为null。

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

如何使用二传手注射?

1 个答案:

答案 0 :(得分:1)

Wicket仅支持现场注入。 在Google中搜索“方法注入被视为有害”以获取详细信息。