第四讲 --Spring的三种实例化Bean的方式

xiaoxiao2026-06-07  3

 

 

三种实例化bean的方式

 

1.使用类构造器实例化<bean id=“orderService" class="cn.itcast.OrderServiceBean"/>

 

 

2.使用静态工厂方法实例化<bean id="persionServiceBean2" class="cn.com.xinli.service.impl.PersionServiceBeanFactory" factory-method="createPersionServiceBean"/>

 

public class PersionServiceBeanFactory{ public static PersionServiceBean createPersionServiceBean() {  return new PersionServiceBean(); }}

 

例子:

 

(1).首先写工厂类.他其中包含产生我们的业务bean的方法

package cn.com.xinli.service.impl; public class PersionServiceBeanFactory { public static PersionServiceBean createPersionServiceBean() { return new PersionServiceBean(); } }

 

(2).改写beans.xml :包含工厂类类名和产生业务bean的方法名字

 

 <bean id="persionServiceBean2" class="cn.com.xinli.service.impl.PersionServiceBeanFactory" factory-method="createPersionServiceBean"/>

 

 (3) 测试

 

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); PersionSevice ps=(PersionSevice)ctx.getBean("persionServiceBean2"); ps.save();

 (4) 结果

 

2009-05-24 14:34:00,781  INFO (PersionServiceBean.java:12) - 我是save()方法!

 

3.使用实例工厂方法实例化:

 

<bean id="PersionServiceBeanFactory" class="cn.com.xinli.service.impl.PersionServiceBeanFactory"></bean>    <bean id="persionServiceBean3" factory-bean="PersionServiceBeanFactory" factory-method="createPersionServiceBean2"></bean>

 

public  PersionServiceBean createPersionServiceBean2() {  return new PersionServiceBean(); }

 

例子:

 

(1). 首先写工厂类.他其中包含产生我们的业务bean的方法 ,在已有代码的基础上

package cn.com.xinli.service.impl; public class PersionServiceBeanFactory { public static PersionServiceBean createPersionServiceBean() { return new PersionServiceBean(); } public PersionServiceBean createPersionServiceBean2() { return new PersionServiceBean(); } }

 

 

(2).改写beans.xml :写两个bean,一个是工厂bean,一个是利用工厂bean产生业务bean的bean.

 

<bean id="PersionServiceBeanFactory" class="cn.com.xinli.service.impl.PersionServiceBeanFactory"></bean> <bean id="persionServiceBean3" factory-bean="PersionServiceBeanFactory" factory-method="createPersionServiceBean2"></bean>

 

 (3) 测试

 

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); PersionSevice ps=(PersionSevice)ctx.getBean("persionServiceBean3"); ps.save();

 (4) 结果

 

2009-05-24 14:49:17,812  INFO (PersionServiceBean.java:12) - 我是save()方法!

 

 (5) 注意,其实方式2和方式3的区别就在 工厂类中是如何产生业务bean的,方式2是static方式,方式3不是

转载请注明原文地址: https://www.6miu.com/read-5049762.html

最新回复(0)