通过调用静态工厂方法创建 Bean

调用静态工厂方法创建 Bean是将对象创建的过程封装到静态方法中. 当客户端需要对象时, 只需要简单地调用静态方法, 而不用关心创建对象的细节.

要声明通过静态方法创建的 Bean, 需要在 Bean 的 class 属性里指定拥有该工厂的方法的类, 同时在 factory-method 属性里指定工厂方法的名称. 最后, 使用 <constrctor-arg> 元素为该方法传递方法参数.

<?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 class: 静态工厂类factroy-method: 静态工厂方法.--><bean id="car" class="com.learn.spring.factory.StaticObjectFactory"factory-method="getCar" ><constructor-arg value="audi"></constructor-arg>    </bean>
</beans>
package com.learn.spring.factory;import java.util.HashMap;
import java.util.Map;import com.learn.spring.autowire.Car;/*** 获取Car对象的工厂.* Car car = StaticObjectFactory.getCar("audi");*/
public  class StaticObjectFactory {private static Map<String,Car> cars = new HashMap<String,Car>();static{cars.put("audi", new Car("Audi", 450000));cars.put("bmw", new Car("bmw",500000));}/*** 静态工厂方法*/public static Car getCar(String carName){return cars.get(carName);}
}
package com.learn.spring.factory;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.learn.spring.autowire.Car;public class Main {public static void main(String[] args) {ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("spring-factory.xml");Car car =(Car) ctx.getBean("car");System.out.println(car);}
}

静态工厂配置bean相关推荐

  1. Spring 学习总结 使用静态工厂创建Bean

    创建Bean时,class属性必须指定,此时为静态工厂类. factory-method指定静态工厂方法名. 接口: 1 2 3 public interface Being {     public ...

  2. 实例工厂配置bean

    通过调用实例工厂方法创建 Bean 实例工厂方法: 将对象的创建过程封装到另外一个对象实例的方法里. 当客户端需要请求对象时, 只需要简单的调用该实例方法而不需要关心对象的创建细节. 要声明通过实例工 ...

  3. java bean 工厂模式_Spring框架通过工厂创建Bean的三种方式实现

    工厂模式 Spring中bean的创建,默认是框架利用反射new出来的bean实例.有时候也会有一些复杂的情况. 假设有一个飞机,属性如下,现在需要造很多同型号的飞机,那么唯一需要改变的属性只有Dri ...

  4. 实验5:配置通过静态工厂方法创建的bean、实例工厂方法创建的bean、(FactoryBean测试)★

    实验5:配置通过静态工厂方法创建的bean.实例工厂方法创建的bean.(FactoryBean测试)★ bean的创建默认就是框架利用反射new出来的bean实例 工厂模式:工厂帮我们创建对象:有一 ...

  5. Spring 通过工厂方法(Factory Method)来配置bean

    在spring的世界中, 我们通常会利用bean config file 或者 annotation注解方式来配置bean. 在第一种利用bean config file(spring xml)方式中 ...

  6. 二、通过工厂方法来配置bean

    调用静态工厂方法创建 Bean是将对象创建的过程封装到静态方法中. 当客户端需要对象时, 只需要简单地调用静态方法, 而不同关心创建对象的细节. 要声明通过静态方法创建的 Bean, 需要在 Bean ...

  7. spring 通过工厂方法配置Bean

    概要: 通过调用静态工厂方法创建Bean 调用静态工厂方法创建Bean是将对象创建的过程封装到静态方法中.当client须要对象时,仅仅须要简单地调用静态方法,而不用关心创建对象地细节. 要声明通过静 ...

  8. Spring学习记录(九)---通过工厂方法配置bean

    1. 使用静态工厂方法创建Bean,用到一个工厂类 例子:一个Car类,有brand和price属性. 1 package com.guigu.spring.factory; 2 3 public c ...

  9. Spring中bean实例化的三种方式:默认构造、静态工厂、实例工厂

    1. 默认构造方式:必须提供默认构造 <bean id="bean id" class="工厂全限定类名"></bean> 以Studn ...

最新文章

  1. [Java]LeetCode297. 二叉树的序列化与反序列化 | Serialize and Deserialize Binary Tree
  2. Java并发编程原理与实战一:聊聊并发
  3. geojson地图_PowerBI地图应用之形状地图
  4. 使用 Visual Studio Team Services 和 IIS 创建持续集成管道
  5. [luogu-P4299] 首都(并查集 + LCT动态维护树的重心 / 维护虚儿子信息)
  6. 实验项目 3-4:一元多项式的乘法与加法运算
  7. Linux 编辑doc,Linux命令大全(文档编辑).doc
  8. 生成的头_谷歌新款怪物制造机,用GAN一键生成定制版哥斯拉
  9. Python学习笔记--Python字符串连接方法总结
  10. 菜鸟到高手:SQL开发进阶常用精妙语句
  11. 蓝牙耳机连接电脑,提示无法安装驱动程序
  12. python头像右上角加红色数字_「微信头像右上角数字」微信头像右上角红色数字怎么添加? - seo实验室...
  13. c语言入门ppt演示,c语言学习ppt-C语言入门教程ppt(共434页)免费版【精品课件】-东坡下载...
  14. java毕业设计网站ssm医院医药药品管理系统
  15. x264码率控制(二)lookahead
  16. python的常量_python中的常量
  17. 为什么会出现403 Forbidden错误?三分钟教你快速解决问题!
  18. CodeForces 19E 仙女fairy
  19. 关于时域、频域和波数域的一些概念
  20. 网页布局中的 px,em,rem,pt

热门文章

  1. Linux下Mysql安装(RPM安装)
  2. Java重写、super关键字、继承中的构造方法
  3. IDEA JRebel热部署插件免费使用方法
  4. 阅读笔记 1 火球 UML大战需求分析
  5. Spring MVC的web.xml配置详解(转)
  6. [svc]visio绘制模具
  7. PHP高级应用视频教程大全学习
  8. dm9000 driver 2
  9. HTTPClient系统学习
  10. java中的==、equals()、hashCode()源码分析