spring三种实例化bean的方式
2016-02-10 10:33
411 查看
1构造函数实例化
2静态工厂方法实例化
3实例工厂方法实例化
service接口:
PersonServiceBean:
PersonServiceBeanFactory:
applicationContext.xml
测试类:
2静态工厂方法实例化
3实例工厂方法实例化
service接口:
package service; public interface PersonService { public void save(); }
PersonServiceBean:
package service.impl; import service.PersonService; public class PersonServiceBean implements PersonService { public void save(){ System.out.println("我是save()方法"); } }
PersonServiceBeanFactory:
package service.impl; public class PersonServiceBeanFactory { /* * 静态工厂方法 */ public static PersonServiceBean createPersonServiceBean(){ return new PersonServiceBean(); } /* * 实例工厂方法 */ public PersonServiceBean createPersonServiceBean2(){ return new PersonServiceBean(); } }
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> <!-- 默认构造方法 --> <bean id = "personService" class = "service.impl.PersonServiceBean"></bean> <!-- 静态工厂方式 --> <bean id = "personService2" class = "service.impl.PersonServiceBeanFactory" factory-method = "createPersonServiceBean"></bean> <!-- 实例工厂方式 --> <bean id = "personServiceFactory" class = "service.impl.PersonServiceBeanFactory"></bean> <bean id = "personService3" factory-bean = "personServiceFactory" factory-method = "createPersonServiceBean2"></bean> </beans>
测试类:
package test; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import service.PersonService; import service.impl.PersonServiceBean; /** * @ClassName: FirstTest * @Description: 测试实spring三种实例化方式 * @author 无名 * @date 2016-02-10 * @version 1.0 */ public class FirstTest { @Test public void testCreateBean(){ String conf = "applicationContext.xml"; ApplicationContext ac = new ClassPathXmlApplicationContext(conf); //利用构造器来实例化 PersonService ps = ac.getBean("personService",PersonServiceBean.class); ps.save(); //利用静态工厂方法 PersonService ps02 = (PersonService)ac.getBean("personService2"); ps02.save(); //实例工厂方法 PersonService ps03 = (PersonService)ac.getBean("personService3"); ps03.save(); } }
相关文章推荐
- struts2文件上传下载(含中文编码问题)
- Java 多线程
- 细数JDK里的设计模式(转)
- 编码剖析Spring管理bean的原理
- 2016蓝桥杯假期任务之《 最大最小公倍数》
- 【番外篇】简约而不简单——单例模式
- java 基础总结 -- enum 枚举的基础使用
- Java认证考试实例疑难辨析(3)
- Java多线程
- 【慕课笔记】U4 多态 第1节 JAVA中的多态
- O(N2)的三种排序-- 冒泡、选择、插入(java代码)
- java 列表实现树迭代器
- JavaWeb_JSP指令讲解
- JavaWeb_JSP讲解
- JavaWeb_Servlet讲解(二)
- java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Int
- java学习心得——动态sql拼接
- 【JAVA】JAVA易错小知识(长期更新)
- spring【4】(关于spring框架的一些思考)
- MyEclipse通过JDBC连接MySQL数据库基本介绍