2012-08-13 14 views
0

我有以下簡單的頁面:檢票+吉斯,setter注入不起作用

public class Login extends BasePage { 
    private UserDao userDao; 

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

吉斯初始化與應用下面的代碼:

@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注入?

回答

1

檢票只支持現場注射。 在谷歌搜索「注射方法被認爲有害」的細節。