第二章 IoC 三種實例化Bean的方式
2.3.1使用類構造器實例化(最經常使用)
類似2.2中的使用:https://blog.csdn.net/p_3er/article/details/9091577
<bean ></bean>
注:這裏的id也可以換成name
<bean name="userDao" ></bean>
如果使用的是id,那麼定義的名字中不能包含特殊字符。而使用name,可以使用特殊字符。在結合struts1.x框架的時候,Action一般使用name,因為它配置會有特殊字符存在。
建議一般情況下使用id,而不是name.
bean的命名第一個字母應該是小寫。
2.3.2靜態工廠的方式實例化
a、使用2.2的例子中的UserDao與UserDaoImpl
public interface UserDao { public void save(); }
public class UserDaoImpl implements UserDao { public void save() { System.out.println("保存用戶..."); } }
b、寫一個UserDao的工廠類,通過一個靜態方法生產UserDao的實現類對象
public class UserDaoFactory { public static UserDao create(){ return new UserDaoImpl(); } }
c、spring配置文件中配置
<!-- 配置工廠類。工廠類生產UserDao的方法名叫create --> <bean factory-method="create"></bean>
d、測試
ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"}); UserDao userDao = (UserDao) context.getBean("userDaoFromFactory"); userDao.save();
2.3.3使用實例工廠實例化
a、使用2.2的例子中的UserDao與UserDaoImpl
public interface UserDao { public void save(); }
public class UserDaoImpl implements UserDao { public void save() { System.out.println("保存用戶..."); } }
b、寫一個UserDao的工廠類,通過一個非靜態方法生產UserDao的實現類對象
public class UserDaoFactory { public static UserDao create(){ return new UserDaoImpl(); } }
c、spring配置文件中配置
<!-- 配置工廠類交由spring管理 --> <bean > </bean> <!-- UserDao對象由工廠類的create方法生產 --> <bean factory-bean="userDaoFactory" factory-method="create"> </bean>
d、測試
ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"}); UserDao userDao = (UserDao) context.getBean("userDaoFromFactory"); userDao.save();
最後更新:2017-04-03 18:52:14