千山鸟飞绝 万径人踪灭
勤练内功,不断实践招数。争取早日成为武林高手

三种实例化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的方法

Java代码 复制代码
  1. package cn.com.xinli.service.impl;   
  2.   
  3.   
  4. public class PersionServiceBeanFactory   
  5. {   
  6.     public static PersionServiceBean createPersionServiceBean()   
  7.     {   
  8.         return new PersionServiceBean();   
  9.     }   
  10. }  

 

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

 

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

 

 (3) 测试

 

Java代码 复制代码
  1. ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");   
  2.         PersionSevice ps=(PersionSevice)ctx.getBean("persionServiceBean2");   
  3.                                                         
  4.         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的方法 ,在已有代码的基础上

Java代码 复制代码
  1. package cn.com.xinli.service.impl;   
  2.   
  3.   
  4. public class PersionServiceBeanFactory   
  5. {   
  6.     public static PersionServiceBean createPersionServiceBean()   
  7.     {   
  8.         return new PersionServiceBean();   
  9.     }   
  10.        
  11.     <SPAN style="COLOR: #ff0000">public  PersionServiceBean createPersionServiceBean2()   
  12.     {   
  13.         return new PersionServiceBean();   
  14.     }</SPAN>   
  15.        
  16. }  

 

 

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

 

Xml代码 复制代码
  1. <bean id="PersionServiceBeanFactory" class="cn.com.xinli.service.impl.PersionServiceBeanFactory"></bean>  
  2.     <bean id="persionServiceBean3" factory-bean="PersionServiceBeanFactory" factory-method="createPersionServiceBean2"></bean>  

 

 (3) 测试

 

Java代码 复制代码
  1. ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");   
  2.         PersionSevice ps=(PersionSevice)ctx.getBean("persionServiceBean3");   
  3.                                                         
  4.         ps.save();  

 (4) 结果

 

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

 

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

posted on 2009-08-25 11:59 笑口常开、财源滚滚来! 阅读(252) 评论(0)  编辑  收藏 所属分类: spring学习

只有注册用户登录后才能发表评论。


网站导航: