静态工厂方法:

Phone.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package com.firefly.spring.beans.factory;
public class Phone {
     private String name;
     private int price;
     public Phone(String name) {
         super ();
         this .name = name;
     }
     public Phone(String name,  int price) {
         super ();
         this .name = name;
         this .price = price;
     }
     public String getName() {
         return name;
     }
     public void setName(String name) {
         this .name = name;
     }
     public int getPrice() {
         return price;
     }
     public void setPrice( int price) {
         this .price = price;
     }
}

StaticPhoneFactory.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.firefly.spring.beans.factory;
import java.util.HashMap;
import java.util.Map;
public class StaticPhoneFactroy {
     private static Map<String,Phone> phone =  new HashMap<String,Phone>();
     static {
         phone.put( "iphone" new Phone( "iphone" , 5000 ));
         phone.put( "xiaomi" new Phone( "xiaomi" , 2000 ));
     }
     public static Phone getPhone(String name){
         return phone.get(name);
     }
}

bean配置:

1
2
3
4
<bean id= "phone1" class = "com.firefly.spring.beans.factory.StaticPhoneFactroy"
     factory-method= "getPhone" >
         <constructor-arg  value= "iphone" ></constructor-arg>
</bean>

factory-method来指定工厂方法,constructor-arg来给工厂方法赋值。

以上静态工厂方法工作流程:在一个静态工厂类中先静态的配置好实例,并用map封装起来,在真正用bean创建实例的时候是以名字为钥匙找到对应的实例,用以创建对象;

还有对应的动态工厂方法,只是它不用static修饰,在调用的时候才配置实例,原理与静态工厂相似。

注解配置方法:~~

转载于:https://my.oschina.net/u/2488249/blog/519994

Spring学习笔记4相关推荐

  1. 【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传

    作者:ssslinppp       1. 摘要 前篇文章讲解了单文件上传<[Spring学习笔记-MVC-13]Spring MVC之文件上传>http://www.cnblogs.co ...

  2. Spring学习笔记(三) AOP_annotation,AOP_XML

    在学习课程以前,听说AOP有种很神秘的感觉,好像很好深的技术.其实原理很简单,使用动态代理的方式给程序增加逻辑.与此相似的有struts2中的filter拦截器. 再讲AOP之前先把需求说一下: 同S ...

  3. spring学习笔记06-spring整合junit(出现的问题,解决的思路)

    spring学习笔记06-spring整合junit(出现的问题,解决的思路) 文章目录 spring学习笔记06-spring整合junit(出现的问题,解决的思路) 3.1测试类中的问题和解决思路 ...

  4. spring学习笔记01-BeanFactory和ApplicationContext的区别

    spring学习笔记01-BeanFactory和ApplicationContext的区别 BeanFactory 和 ApplicationContext 的区别           BeanFa ...

  5. spring学习笔记02-spring-bean创建的细节问题

    spring学习笔记02-spring-bean创建的细节问题 三种创建Bean对象的方式 Bean的作用范围 Bean的生命周期 <?xml version="1.0" e ...

  6. spring学习笔记03-spring-DI-依赖注入详解(通过xml配置文件来配置依赖注入)

    spring学习笔记03-spring-DI-依赖注入详解 1.概念 2.构造函数注入 3.set方法注入 4.集合的注入 需要被注入的实体对象 package com.itheima.service ...

  7. Spring学习笔记:配置单数据源

    Spring学习笔记:配置单数据源 一.Spring Boot默认数据源类型 Springboot默认支持4种数据源类型,定义在 org.springframework.boot.autoconfig ...

  8. Spring学习笔记:第一个Spring Boot程序HelloWorld

    Spring学习笔记:第一个Spring Boot程序HelloWorld 一.跟着 Spring 了解技术趋势 1.看看 Spring 5.x 的改变暗示了什么 2.Spring Boot 和 Sp ...

  9. Spring学习笔记之MyBatis

    系列文章目录 Spring学习笔记 之 Springhttps://blog.csdn.net/weixin_43985478/article/details/124411746?spm=1001.2 ...

  10. 【Spring学习笔记 九】Spring声明式事务管理实现机制

    什么是事务?事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用,关乎数据准确性的地方我们一定要用到事务,防止业务逻辑出错. 什么是事务管理,事务管理对于企业应用而言至 ...

最新文章

  1. 神经网络为什么需要多次epoch
  2. 013_SpringBoot视图层技术thymeleaf-迭代遍历
  3. UITableView的UITableViewStyleGrouped
  4. 求计算两个时间的差(DateTime类和TimeSpan类)
  5. sql 异常除非另外还指定了 TOP、OFFSET 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。...
  6. 理解苏宁:互联网转型之战
  7. CruiseControl服务器安装配置
  8. html数据透视,Excel数据透视表使用过程中常见问题 如何在excel数据透视表中使用函数公式...
  9. nginx 加上ssl配置
  10. java小项目之:象棋,羡慕你们有对象的!
  11. web、ftp上传区别
  12. Zookeeper选举机制
  13. MySql导入、导出数据解决方案(SQL语句)
  14. 2023微信手机号筛选器,快速检测出开通微信的号码,检测国外号码过滤微信状态,判断qq是否开通微信软件
  15. 学习CALCULATE函数(一)修订版
  16. SCI-HUB的前世今生以及其他下载论文文献的方法
  17. Android中的Activity
  18. UDT 最新源码分析(五) -- 网络数据收发
  19. 读书有益——》关于雪下很大的成语
  20. 宝塔面板子目录伪静态设置

热门文章

  1. StataIC——短面板数据分析(以检验啤酒税将降低交通死亡率的假说为例)
  2. 通用oa系统_点晴:免费OA系统V20,让协同办公无处不在
  3. linux环境下pytesseract的安装和央行征信中心的登录验证码识别
  4. 查询央行征信的APP有哪些?
  5. python系统函数详解
  6. 解决Ubuntu远程连接mysql连不上的问题
  7. Linux audit详解
  8. Adobe Camera Raw使用方法
  9. QInputDialog,QTextEdit,QLineEdit,Qt右键菜单英文转中文问题
  10. 宝塔 php守护 1.2,宝塔面板的Supervisor (进程管理利器) 使用说明 – 附Nginx守护教程...