bean实例化-实例工厂
bean实例化-实例工厂
-
实例工厂
//UserDaoFactory.java 实例工厂 public class UserDaoFactory { public UserDao getUserDao(){ return new UserDaoImpl(); } } // UserDao.java public interface UserDao { void save(); } // UserDaoImpl.java 接口实现类 public class UserDaoImpl implements UserDao { @Override public void save() { System.out.println("user dao save..."); } } // AppForInstanceUser.java 测试类 public class AppForInstanceUser { public static void main(String[] args) { // 创建实例化工厂对象 /* UserDaoFactory userDaoFactory = new UserDaoFactory(); // 通过实例化工厂对象创建对象 UserDao userDao = userDaoFactory.getUserDao(); userDao.save();*/ ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); UserDao userDao = (UserDao) ctx.getBean("userDao"); userDao.save(); } }
-
配置
<!--applicationContext.xml--> <!--方式三:使用实例化工厂实例化bean--> <bean id="userFactory" class="com.charley.factory.UserDaoFactory"/> <bean id="userDao" factory-bean="userDaoFactory" factory-method="getUserDao"/>