`
jishublog
  • 浏览: 869579 次
文章分类
社区版块
存档分类
最新评论

第二章 IoC 三种实例化Bean的方式

 
阅读更多


2.3.1使用类构造器实例化(最经常使用)

类似2.2中的使用:http://blog.csdn.net/p_3er/article/details/9091577

<bean id="userDao" class="cn.framelife.spring.dao.impl.UserDaoImpl"></bean>

注:这里的id也可以换成name

<bean name="userDao" class="cn.framelife.spring.dao.impl.UserDaoImpl"></bean>

如果使用的是id,那么定义的名字中不能包含特殊字符。而使用name,可以使用特殊字符。在结合struts1.x框架的时候,Action一般使用name,因为它配置会有特殊字符存在。

建议一般情况下使用id,而不是name.

bean的命名第一个字母应该是小写。


2.3.2静态工厂的方式实例化

a、使用2.2的例子中的UserDaoUserDaoImpl

public interface UserDao {
	public void save();
}

public class UserDaoImpl implements UserDao {
	public void save() {
		System.out.println("保存用户...");
	}
}


b、写一个UserDao的工厂类,通过一个静态方法生产UserDao的实现类对象

public class UserDaoFactory {
	public static UserDao create(){
		return new UserDaoImpl();
	}
}


cspring配置文件中配置

<!-- 配置工厂类。工厂类生产UserDao的方法名叫create -->
<bean id="userDaoFromFactory" class="cn.framelife.spring.factory.UserDaoFactory" factory-method="create"></bean>


d、测试

                ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});
		
		UserDao userDao = (UserDao) context.getBean("userDaoFromFactory");
		userDao.save();




2.3.3使用实例工厂实例化

a、使用2.2的例子中的UserDaoUserDaoImpl

public interface UserDao {
	public void save();
}

public class UserDaoImpl implements UserDao {
	public void save() {
		System.out.println("保存用户...");
	}
}


b、写一个UserDao的工厂类,通过一个非静态方法生产UserDao的实现类对象

public class UserDaoFactory {
	public static UserDao create(){
		return new UserDaoImpl();
	}
}


cspring配置文件中配置

<!-- 配置工厂类交由spring管理 -->
<bean id="userDaoFactory" 			class="cn.framelife.spring.factory.UserDaoFactory" >
</bean>
<!-- UserDao对象由工厂类的create方法生产  -->
<bean id="userDaoFromFactory" 
	factory-bean="userDaoFactory" 
	factory-method="create">
 </bean>


d、测试

                ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});
		
		UserDao userDao = (UserDao) context.getBean("userDaoFromFactory");
		userDao.save();



分享到:
评论

相关推荐

    跟我学spring3(1-7)

    【第二章】 IoC 之 2.1 IoC基础 ——跟我学Spring3 【第二章】 IoC 之 2.2 IoC 容器基本原理 ——跟我学Spring3 【第二章】 IoC 之 2.3 IoC的配置使用——跟我学Spring3 【第三章】 DI 之 3.1 DI的配置使用 ——跟我...

    Spring攻略PDF版

     3.2 实例化Spring IoC容器   3.2.1 问题描述   3.2.2 解决方案   3.2.3 实现方法   3.3 解决构造器歧义   3.3.1 问题描述   3.3.2 解决方案   3.3.3 实现方法   第4章 高级...

    Spring攻略中文版PDF

     3.2 实例化Spring IoC容器   3.2.1 问题描述   3.2.2 解决方案   3.2.3 实现方法   3.3 解决构造器歧义   3.3.1 问题描述   3.3.2 解决方案   3.3.3 实现方法   第4章 高级...

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

     3.2 实例化Spring IoC容器   3.2.1 问题描述   3.2.2 解决方案   3.2.3 实现方法   3.3 解决构造器歧义   3.3.1 问题描述   3.3.2 解决方案   3.3.3 实现方法   第4章 高级Spring IoC...

    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 ...

    Java/JavaEE 学习笔记

    第二章 Spring IOC(控制反转)........347 第三章 Spring AOP(面向切面编程)..........351 第四章 Spring中的数据访问..........353 CVS学习笔记.................355 PL/SQL学习笔记............358 第一章 PL/SQL...

    J2EE学习笔记(J2ee初学者必备手册)

    第二章 Spring IOC(控制反转)........347 第三章 Spring AOP(面向切面编程)..........351 第四章 Spring中的数据访问..........353 CVS学习笔记.................355 PL/SQL学习笔记............358 第一章 PL/SQL...

    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 特殊方法成漏网之鱼...

    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 特殊方法成漏网之鱼...

    跟开涛学Spring

    1.1 【第二章】 IoC 之 2.3 IoC的配置使用——跟我学Spring3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 【第二章】 IoC 之 2.1 IoC基础 ——跟我学Spring3 . . . . . . . . . . . ...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...

    Java语言基础下载

    第二章: 面向对象概述 15 学习目标 15 面向对象(Object Oriented) 16 面向对象的主要特性 18 抽象(Abstraction) 18 封装(Encapsulation): 19 多态(Polymorphism) 20 面向对象的优点 22 面向对象的分析、设计和编程...

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

    1.1 实例化Spring IoC容器 1 1.1.1 问题 1 1.1.2 解决方案 1 1.1.3 工作原理 3 1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用构造程序创建Bean 14 ...

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

    1.1 实例化Spring IoC容器 1 1.1.1 问题 1 1.1.2 解决方案 1 1.1.3 工作原理 3 1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用构造程序创建Bean 14 ...

    低清版 大型门户网站是这样炼成的.pdf

    第6章 充分利用spring 2.5的ioc利器统管bean世界 349 6.1 java程序员的春天厚礼—spring 2.5 349 6.1.1 爱上spring 2.5的十大理由 350 6.1.2 一睹spring 2.5芳容 351 6.1.3 spring 2.5拿手戏——控制反转与依赖...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    第二章 系统设计 2.1. 系统分析 在整个blog进行开发之前,要确定出整个项目的整体架构,包括系统的选型、运行环境的确定及系统结构设计。下面对这进行详细介绍。 在进行软件系统开发的最初环节,一般都需要进行...

    spring3.1中文参考文档

    第二部分 Spring 3的新特性............................................................................................................................. 22 第2章 Spring 3.0的新特性和增强 ..................

    springmybatis

    恭喜你,环境搭建配置成功,接下来第二章,将讲述基于接口的操作方式,增删改查。 整个工程目录结构如下: 除非申明,文章均为一号门原创,转载请注明本文地址,谢谢! mybatis实战教程(mybatis in action)之二:以...

Global site tag (gtag.js) - Google Analytics