Spring 使用实例工厂方法实例化Bean

知识点介绍:

实例工厂的意思是获取对象实例的方法不是静态的,所以你需要首先new工厂类,再调用普通的实例方法。

【转载使用,请注明出处:http://blog.csdn.net/mahoking

操作步骤:

1、创建Speaker对象。

public class Speaker {

	//使用实例工厂方法实例化Bean
	private String speakerName;

	public Speaker(String speakerName) {
		this.speakerName = speakerName;
	}

	/**
	 * 演讲
	 */
	public void speech() {
		System.out.println(toString());
	}

	@Override
	public String toString() {
		return "Speaker [speakerName=" + speakerName + "]";
	}
}

2、创建SpeakerFactory对象。

public class SpeakerFactory {

	/**
	 * 工厂方法
	 * @param speakerName
	 * @return
	 */
	public Speaker newInstance() {
		String speakerName = "Lucy And Lily";
		return new Speaker(speakerName);
	}
}

3、创建Spring配置文件beanLearn04.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.xsd">

	<!-- Learn 04 使用实例工厂方法实例化Bean -->
	<!-- 定义实例工厂Bean -->
	<bean id="speakerFactory" class="com.mahaochen.spring.learn04.SpeakerFactory" />
	<!-- 使用实例工厂Bean创建Bean -->
	<bean id="speaker04" class="com.mahaochen.spring.learn04.Speaker"
		factory-bean="speakerFactory" factory-method="newInstance" >
	</bean>

</beans>

4、将Spring配置文件beanLearn04.xml引入到主配置文件beans.xml中。

<!-- Learn 04  使用实例工厂方式实例化Bean -->
	<import resource="com/mahaochen/spring/learn04/beanLearn04.xml"/>

5、 编写测试类TestSpring04.java。

public class TestSpring04 {

	public static void main(String[] args) {
		BeanFactory beanFactory = new ClassPathXmlApplicationContext("beans.xml");
		//使用实例工厂方法实例化Bean
		Speaker speaker04 = beanFactory.getBean("speaker04", Speaker.class);
		speaker04.speech();
	}
}

【转载使用,请注明出处:http://blog.csdn.net/mahoking

时间: 2024-10-22 04:09:34

Spring 使用实例工厂方法实例化Bean的相关文章

spring之通过实例工厂方法配置Bean

Car.java package com.gong.spring.beans.factory; public class Car { private String name; private double price; public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } p

Spring 使用静态工厂方式实例化Bean

知识点介绍: 静态工厂顾名思义,就是通过调用静态工厂的方法来获取自己需要的对象,为了让spring管理所有对象,我们不能直接通过"工程类.静态方法()"来获取对象,而是依然通过spring注入的形式获取. [转载使用,请注明出处:http://blog.csdn.net/mahoking] 操作步骤: 1.创建Speaker对象. /** * 静态工厂类 * */ public class Speaker { private String name ; private String t

Spring(十三):使用工厂方法来配置Bean的两种方式(静态工厂方法&amp;实例工厂方法)

通过调用静态工厂方法创建Bean 1)调用静态工厂方法创建Bean是将对象创建的过程封装到静态方法中.当客户端需要对象时,只需要简单地调用静态方法,而不需要关心创建对象的具体细节. 2)要声明通过静态方法创建的Bean,需要在Bean的class属性中指定拥有该工厂的方法的类,同时需要在bean的factory-method属性里指定工厂方法的名称.最后,使用<constructor-arg>元素为该方法传递方法参数. 示例: 第一步:创建一个java project,导入包: 第二步:创建c

Spring -- spEL&amp;Bean的生命周期&amp;工厂方法配置Bean

对于学习spring有帮助的网站:http://jinnianshilongnian.iteye.com/blog/1482071 Spring表达式语言:SpEL Spring 表达式语言(简称SpEL):是一个支持运行时查询和操作对象图的强大的表达式语言. 语法类似于 EL:SpEL 使用 #{-} 作为定界符,所有在大框号中的字符都将被认为是 SpEL SpEL 为 bean 的属性进行动态赋值提供了便利 通过 SpEL 可以实现: 1.通过 bean 的 id 对 bean 进行引用 2

Spring初学之通过工厂方法配置Bean

工厂方法配置bean分为两种,一种是实例工厂方法,另一种是静态工厂方法. 先来看看实体bean: Car.java: package spring.beans.factory; public class Car { private String name; private int price; public Car(String name, int price) { super(); this.name = name; this.price = price; } public String ge

spring 通过工厂方法配置Bean

概要: 通过调用静态工厂方法创建Bean 调用静态工厂方法创建Bean是将对象创建的过程封装到静态方法中.当client须要对象时,仅仅须要简单地调用静态方法,而不用关心创建对象地细节. 要声明通过静态方法创建的Bean,须要在Bean地class属性里指定拥有该工厂的方法的类,同一时候在factory-method属性里指定工厂方法的名称.最后,使用<constructor-arg>元素为该方法传递方法參数 通过调用实例工厂方法创建Bean 实例工厂方法:将对象的创建过程封装到另外一个对象实

通过工厂方法创建bean实例

1.静态工厂方法 /** * 静态工厂方法:直接调用某一个类的静态方法就可以返回bean实例 *  * */ 1)先建立静态工厂public class StaticCarFactory { private static Map<String,Car> cars = new HashMap<String,Car>(); static { cars.put("audi", new Car("audi",300000)); cars.put(&q

4.spriing:Bean的生命周期/工厂方法配置Bean/FactoryBean

1.Bean的生命周期 scope:singleton/prototype 1)spring容器管理singleton作用的生命周期,spring能够精确知道Bean合适创建,何时初始化完成,以及何时被销毁 2)spring容器管理prototype作用的生命周期,spring只负责创建,容器实例化之后就交给客户端进行管理,spring容器不会再 跟踪其生命周期. 可以借鉴servlet的生命周期"实例化--初始化--接受请求--销毁" Spring IOC容器可以管理Bean的生命周

Spring_通过工厂方法配置 Bean

beans-factory.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.s