1. 構造器注入 /*帶參數,方便利用構造器進行注入*/ public CatDaoImpl(String message){ this. message = message; }
2. setter方法注入 public class Id { private int id; public int getId() { return id; } public void setId(int id) { this.id = id; } }
3. 靜態工廠注入靜態工廠顧名思義,就是通過調用靜態工廠的方法來獲取自己需要的對象,為了讓spring管理所有對象,我們不能直接通過"工程類.靜態方法()"來獲取對象,而是依然通過spring 注入的形式獲取: public class DaoFactory { //靜態工廠 public static final FactoryDao getStaticFactoryDaoImpl(){ return new StaticFacotryDaoImpl(); } } public class SpringAction { private FactoryDao staticFactoryDao; //注入對象 //注入對象的 set 方法 public void setStaticFactoryDao(FactoryDao staticFactoryDao) { this.staticFactoryDao = staticFactoryDao; } } //factory-method="getStaticFactoryDaoImpl"指定調用哪個工廠方法
4. 實例工廠注入 實例工廠的意思是獲取對象實例的方法不是靜態的,所以你需要首先 new 工廠類,再調用普通的實例方法: public class DaoFactory { //實例工廠 public FactoryDao getFactoryDaoImpl(){ return new FactoryDaoImpl(); } } public class SpringAction { private FactoryDao factoryDao; //注入對象 public void setFactoryDao(FactoryDao factoryDao) { this.factoryDao = factoryDao; } }