spring4-2-bean配置-9-通过工厂方法配置bean
aaarticlea/png;base64,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" alt="" />
除了可以通过配置全类名使用反射的方式创建bean外,还可以使用工厂方法创建bean.这点在整合框架的时候会用到.
1.静态工厂方法
调用静态工厂方法创建 Bean是将对象创建的过程封装到静态方法中. 当客户端需要对象时, 只需要简单地调用静态方法, 而不去关心创建对象的细节.
要声明通过静态方法创建的 Bean, 需要在 Bean 的 class 属性里指定拥有该工厂的方法的类, 同时在 factory-method 属性里指定工厂方法的名称. 最后, 使用 <constrctor-arg> 元素为该方法传递方法参数.
1.1 创建bean:
package spring.demo_01.factory; public class Car {
private String brand;
private double price;
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public Car(String brand, double price) {
super();
this.brand = brand;
this.price = price;
}
@Override
public String toString() {
return "Car [brand=" + brand + ", price=" + price + "]";
}
}
1.2创建静态工厂类:
package spring.demo_01.factory; import java.util.HashMap;
import java.util.Map;
/**
* 静态工厂方法
*/
public class StaticCarFactory {
private static Map<String,Car> cars = new HashMap<String,Car>();
static {
cars.put("ford",new Car("ford", 120000));
cars.put("dazhong",new Car("dazhong", 100000));
}
public static Car getCar(String name){
return cars.get(name);
}
}
1.3配置bean:
<?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"> <!-- 通过静态工厂方法来配置bean,需要注意的是不是配置静态工厂类的实例,而是配置bean的实例 -->
<!--
class:指向静态工厂的全类名
factory-method:执行静态类的静态工厂方法
constructor-arg:配置静态工厂方法需要掺入的参数
-->
<bean id="car1"
class="spring.demo_01.factory.StaticCarFactory"
factory-method="getCar">
<constructor-arg value="ford"></constructor-arg>
</bean>
<bean id="car2"
class="spring.demo_01.factory.StaticCarFactory"
factory-method="getCar">
<constructor-arg value="dazhong"></constructor-arg>
</bean>
</beans>
1.4测试类:
package spring.demo_01.factory; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class App { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-factory.xml"); Car car1 = ctx.getBean("car1",Car.class);
System.out.println(car1);
} }
2.实例工厂方法
实例工厂方法是 将对象的创建过程封装到另外一个对象实例的方法里. 当客户端需要请求对象时, 只需要简单的调用该实例方法而不需要关心对象的创建细节.
要声明通过实例工厂方法创建的 Bean:
- 在 bean 的 factory-bean 属性里指定拥有该工厂方法的 Bean
- 在 factory-method 属性里指定该工厂方法的名称
- 使用 construtor-arg 元素为工厂方法传递方法参数
注意:需要先创建实例工厂类的实例,才能去创建bean.
2.1 实例工厂类:
package spring.demo_01.factory; import java.util.HashMap;
import java.util.Map;
/**
*实例工厂方法,得到bean之前,需要先创建该工厂的实例.
*/
public class InstanceCarFactory {
private Map<String,Car> cars ;
public InstanceCarFactory() {
cars = new HashMap<String,Car>(); cars.put("ford", new Car("ford",120000));
cars.put("BMW", new Car("BMW",320000));
}
public Car getCar(String name){
return cars.get(name);
}
}
2.2 bean配置:
<!-- 配置工厂实例 -->
<bean id="instanceCarFactory" class="spring.demo_01.factory.InstanceCarFactory"></bean>
<!-- 通过工厂实例配置bean -->
<bean id="car3" factory-bean="instanceCarFactory" factory-method="getCar">
<constructor-arg value="BMW"></constructor-arg>
</bean>
2.3 测试类:
package spring.demo_01.factory; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class App { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-factory.xml"); Car car1 = ctx.getBean("car3",Car.class);
System.out.println(car1);
} }
spring4-2-bean配置-9-通过工厂方法配置bean的更多相关文章
- Spring4.0学习笔记(6) —— 通过工厂方法配置Bean
1.静态工厂方法: bean package com.spring.factory; public class Car { public Car(String brand) { this.brand ...
- Spring4学习回顾之路07- 通过工厂方法配置Bean
一:通过静态工厂配置Bean 建立Student.java package com.lql.srping04; /** * @author: lql * @date: 2019.10.28 * Des ...
- 4.spriing:Bean的生命周期/工厂方法配置Bean/FactoryBean
1.Bean的生命周期 scope:singleton/prototype 1)spring容器管理singleton作用的生命周期,spring能够精确知道Bean合适创建,何时初始化完成,以及何时 ...
- Spring学习--静态工厂方法、实例工厂方法创建 Bean
通过调用静态工厂方法创建 bean: 调用静态工厂方法创建 bean 是将对象创建的过程封装到静态方法中 , 当客户端需要对象时 , 只需要简单地调用静态方法 , 而不需要关心创建对象的细节. 要声明 ...
- Spring学习记录(九)---通过工厂方法配置bean
1. 使用静态工厂方法创建Bean,用到一个工厂类 例子:一个Car类,有brand和price属性. package com.guigu.spring.factory; public class C ...
- [原创]java WEB学习笔记102:Spring学习---Spring Bean配置:bean配置方式(工厂方法(静态工厂方法 & 实例工厂方法)、FactoryBean) 全类名
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- spring 通过工厂方法配置Bean
概要: 通过调用静态工厂方法创建Bean 调用静态工厂方法创建Bean是将对象创建的过程封装到静态方法中.当client须要对象时,仅仅须要简单地调用静态方法,而不用关心创建对象地细节. 要声明通过静 ...
- 通过工厂方法配置Bean
前面几节,我们配过了好多Bean,通过反射机制,在class属性里填写全类名,现在我们来讲讲其他方式,通过工厂方法,还有通过FactoryBean,这个在我们整合第三方框架时会用到. 工厂方法可以分为 ...
- Spring_通过工厂方法配置 Bean
beans-factory.xml <?xml version="1.0" encoding="UTF-8"?><beans xmlns=&q ...
随机推荐
- nginx 域名跳转一例~~~(rewrite、proxy)
来自: http://storysky.blog.51cto.com/628458/486338/ 前几天搭了一个论坛服务器并放到了公司的局域网里面,论坛用的是9066端口并在路由器上面做了个端口转发 ...
- xshell 提示 继续使用此程序必须应用到最新的更新或使用新版本 的解决方案
当打开正在使用的xshell后,提示“继续使用此程序必须应用到最新的更新或使用新版本 ” 是因为我们正在使用的是xshell5 版本,需要我们再安装一个xshell6 版本 我个人使用的是家庭/教育 ...
- 微服务架构 vs. SOA架构
面向服务架构(SOA)已经存在有些年头了,这是一种用于设计软件的伟大原则.在SOA中,所有组件都是独立自主的,并能为其他组件提供服务.要替换掉系统中的某些部分而不对整个系统造成较大的影响本是个难题,然 ...
- golang获取packed struct的大小
网络协议里面,很可能遇到自定义的封包,对应到c里面的是 typedef struct _PackageHeader { int headerLen; int timeStamp; short cmd ...
- JVM内存管理之GC算法精解(复制算法与标记/整理算法)
本次LZ和各位分享GC最后两种算法,复制算法以及标记/整理算法.上一章在讲解标记/清除算法时已经提到过,这两种算法都是在此基础上演化而来的,究竟这两种算法优化了之前标记/清除算法的哪些问题呢? 复制算 ...
- MongoDB在windows平台分片集群部署
本文转载自:https://www.cnblogs.com/hx764208769/p/4260177.html 前言-为什么我要使用mongodb 最近我公司要开发一个日志系统,这个日志系统包括很多 ...
- 螺旋填数:读入两个整数m,n,输出一个m行n列的矩阵,这个矩阵是1~m*n这些自然数按照右、下、左、上螺旋填入的结果。
package Day8_06; /*读入两个整数m,n,输出一个m行n列的矩阵,这个矩阵是1~m*n这些自然数按照右.下.左.上螺旋填入的结果. * 例如读入数字4,5,则输出结果为: * 1 2 ...
- zookeeper实战:SingleWorker代码样例
我们需要一个“单点worker”系统,此系统来确保系统中定时任务在分布式环境中,任意时刻只有一个实例处于活跃:比如,生产环境中,有6台机器支撑一个应用,但是一个应用中有30个定时任务,这些任务有些必须 ...
- 九 assign和subscribe
1 subscribe: 自动安排分区, 通过group自动重新的负载均衡: 关于Group的实验: 如果auto commit = true, 重新启动进程,如果是同样的groupID,从上次co ...
- 【BZOJ】1012: [JSOI2008]最大数maxnumber /【洛谷】1198(线段树)
Description 现在请求你维护一个数列,要求提供以下两种操作:1. 查询操作.语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度.2. 插 ...