`
8366
  • 浏览: 801165 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

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

阅读更多

 

 

三种实例化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不是

分享到:
评论

相关推荐

    Spring-Reference_zh_CN(Spring中文参考手册)

    实例化bean 3.2.4. 使用容器 3.3. 依赖 3.3.1. 注入依赖 3.3.1.1. Setter注入 3.3.1.2. 构造器注入 3.3.1.3. 一些例子 3.3.2. 构造器参数的解析 3.3.2.1. 构造器参数类型匹配 3.3.2.2. 构造器参数的索引 3.3.3. ...

    Spring攻略PDF版

     2.5 使用Spring IDE的Bean-supporting特性   2.5.1 问题描述   2.5.2 解决方案   2.5.3 实现方法   2.6 小结   第3章 Spring中的Bean配置   3.1 在Spring IoC容器里配置Bean   3.1.1...

    Spring攻略中文版PDF

     2.5 使用Spring IDE的Bean-supporting特性   2.5.1 问题描述   2.5.2 解决方案   2.5.3 实现方法   2.6 小结   第3章 Spring中的Bean配置   3.1 在Spring IoC容器里配置Bean   3.1.1...

    JAVA spring 系列案例50个和学习资料

    Spring系列第4篇:xml中bean定义详解(-)Spring系列第5篇:创建bean实例这些方式你们都知道?Spring系列第6篇:玩转bean scope,避免跳坑里!Spring系列第7篇:依赖注入之手动注入Spring系列第8篇:自动注入...

    Spring攻略英文版(附带源码)

     2.5 使用Spring IDE的Bean-supporting特性   2.5.1 问题描述   2.5.2 解决方案   2.5.3 实现方法   2.6 小结   第3章 Spring中的Bean配置   3.1 在Spring IoC容器里配置Bean   3.1.1 问题...

    Spring 3 Reference中文

    4.3.2 实例化bean . 36 4.3.2.1 使用构造方法实例化 36 4.3.2.2 使用静态工厂方法来实例化.. 36 4.3.2.3 使用实例工厂方法来实例化.. 37 4.4 依赖 38 4.4.1 依赖注入. 38 4.4.1.1 ...

    跟我学spring3(1-7)

    【第六章】 AOP 之 6.8 切面实例化模型 ——跟我学spring3 【第六章】 AOP 之 6.9 代理机制 ——跟我学spring3 【第七章】 对JDBC的支持 之 7.1 概述 ——跟我学spring3 【第七章】 对JDBC的支持 之 7.2 ...

    spring chm文档

    3.3.5. 延迟初始化bean 3.3.6. 自动装配(autowire)协作者 3.3.7. 依赖检查 3.3.8. 方法注入 3.4. bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用域 3.4.3. 其他作用域 3.4.4. 自定义作用域 ...

    spring(一)–概念和历史/hellospring/IOC创建对象的方式/Spring配置/set注入/c命名和p命名空间注入/bean的作用域

    文章目录一、概念和历史二、hellospring三、IOC创建对象的方式四、Spring配置五、set注入–属性注入六、c命名和p命名空间注入七 、bean的作用域 一、概念和历史 Spring的形成,最初来自Rod Jahnson所著的一本很有...

    Spring中文帮助文档

    3.3.4. 延迟初始化bean 3.3.5. 自动装配(autowire)协作者 3.3.6. 依赖检查 3.3.7. 方法注入 3.4. Bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用域 3.4.3. Singleton beans和prototype-bean的...

    Spring 2.0 开发参考手册

    3.3.5. 延迟初始化bean 3.3.6. 自动装配(autowire)协作者 3.3.7. 依赖检查 3.3.8. 方法注入 3.4. bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用域 3.4.3. 其他作用域 3.4.4. 自定义作用域 ...

    Spring+3.x企业应用开发实战光盘源码(全)

     第4章:讲解如何在Spring配置文件中使用Spring 3.0的Schema格式配置Bean的内容,并对各个配置项的意义进行了深入的说明。  第5章:对Spring容器进行解构,从内部探究Spring容器的体系结构和运行流程。此外,我们...

    Spring API

    3.3.4. 延迟初始化bean 3.3.5. 自动装配(autowire)协作者 3.3.6. 依赖检查 3.3.7. 方法注入 3.4. Bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用域 3.4.3. Singleton beans和prototype-bean的...

    Spring攻略(第二版 中文高清版).part1

    第4章 Spring中的脚本 152 4.1 用脚本语言实现Bean 152 4.1.1 问题 152 4.1.2 解决方案 153 4.1.3 工作原理 153 4.2 将Spring Bean注入脚本中 157 4.2.1 问题 157 4.2.2 解决方案 157 4.2.3 工作...

    Spring.3.x企业应用开发实战(完整版).part2

    10.4.1 Spring通过单实例化Bean简化多线程问题 10.4.2 启动独立线程调用事务方法 10.5 联合军种作战的混乱 10.5.1 Spring事务管理器的应对 10.5.2 Hibernate+Spring JDBC混合框架的事务管理 10.6 特殊方法成漏网之鱼...

    Spring攻略(第二版 中文高清版).part2

    第4章 Spring中的脚本 152 4.1 用脚本语言实现Bean 152 4.1.1 问题 152 4.1.2 解决方案 153 4.1.3 工作原理 153 4.2 将Spring Bean注入脚本中 157 4.2.1 问题 157 4.2.2 解决方案 157 4.2.3 工作...

    跟开涛学Spring

    1.27 【第六章】 AOP 之 6.8 切面实例化模型 ——跟我学spring3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .282 1.28 【第六章】 AOP 之 6.9 代理机制 ——跟我学spring3 . . . . . . . . . . . . . ...

    大型门户网站是这样炼成的 源码下载

    第4章 ORM中间件名流Hibernate3接管持久层 第5章 Hibernate3持久化技术实践与性能优化 第6章 充分利用Spring2的IOC利器统管Bean世界 第8章 通用新闻采集系统 综合实例-免费电子商务平台 内含jar包等文件,解压出来...

    Spring3.x企业应用开发实战(完整版) part1

    10.4.1 Spring通过单实例化Bean简化多线程问题 10.4.2 启动独立线程调用事务方法 10.5 联合军种作战的混乱 10.5.1 Spring事务管理器的应对 10.5.2 Hibernate+Spring JDBC混合框架的事务管理 10.6 特殊方法成漏网之鱼...

    springmybatis

    请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句: session.selectOne("com.yihaomen.mybatis.models.UserMapper.selectUserByID", 1) 其实还有更简单的方法,而且是更好的方法,使用合理描述参数和...

Global site tag (gtag.js) - Google Analytics