有时候,静态工厂方法是实例化对象的唯一方法,Spring支持通过<bean>元素的factory-method属性来装配工厂创建的Bean。

单例模式(设计模式)

public class DBUtil {//构造方法私有化private DBUtil(){}//创建一个对象实例private static DBUtil instance = new DBUtil();  //若没有static,则不能返回,为什么?//获取对象public static DBUtil getInstance(){return instance;}public void test(){System.out.println("调用DBUtil的test方法");}
}

在配置文件中加入以下代码:

<!--工厂方法注入--><bean id="dbUtils" class="com.etc.utils.DBUtil" factory-method="getInstance"></bean>

编写测试类

public class TestFactoryMethodInject {@Testpublic void testGetBean() {ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");System.out.println("applicationContext初始化完成");DBUtil dbUtil  = context.getBean("dbUtils",DBUtil.class);dbUtil.test();}
}

Spring 注入方式之工厂方法注入相关推荐

  1. 工厂方法注入(静态和非静态)

    先看非静态的 先写一个简单工厂 Java代码   package com.lbx.factory; import com.lbx.model.Car; /** * 这是非静态的工厂方法注入 * @au ...

  2. 依赖注入的三种方式_一起学Spring之三种注入方式及集合类型注入

    本文主要讲解Spring开发中三种不同的注入方式,以及集合数据类型的注入,仅供学习分享使用,如有不足之处,还请指正. 概述 Spring的注入方式一共有三种,如下所示: 通过set属性进行注入,即通过 ...

  3. 【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 使用 ExpandoMetaClass 进行方法注入 )

    文章目录 一.使用 ExpandoMetaClass 进行方法注入 三.完整代码示例 一.使用 ExpandoMetaClass 进行方法注入 在 [Groovy]MOP 元对象协议与元编程 ( 方法 ...

  4. 【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 使用 MetaClass 进行方法注入普通方法 )

    文章目录 一.使用 MetaClass 进行方法注入 二.完整代码示例 一.使用 MetaClass 进行方法注入 定义 Student 类 , class Student {def name; } ...

  5. 新型注入方式直击网络——session注入探究

    首先说明,本文不是讲session欺骗方法或原理.     1年前流转跟我说他有一个想法,就是session注入,当时我认为有点不可能,因为session很少进库的,就算进库了,也注射不了,就算能注射 ...

  6. python dll注入监听_注入方式,劫持dll注入的实现

    基础的东西不想多讲,简单的提一句,具体请问度娘. Windows的PE加载器会从执行文件目录下寻找DLL,如果找不到再去其他地方找. 把我们特定的DLL伪装成系统DLL,然后放在执行文件目录下,就能实 ...

  7. 学习Spring(二) 调用静态工厂方法创建Bean

    1,创建抽象的产品类 package com.robert.spring.shop;public abstract class Product {} 2,创建具体产品类 package com.rob ...

  8. spring四种依赖注入方式

    平常的java开发中,程序员在某个类中需要依赖其它类的方法,通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理. spring提出了依赖注入的思想,即依赖不由程序 ...

  9. Spring的四种注入方式

    Spring的四种注入方式 1.set方法注入 2.构造器注入 3.静态工厂注入 4.实例工厂注入 我使用下面两个类来进行注入的演示,这两个类分别是User和Car类: Car类: public cl ...

最新文章

  1. TinyML-TVM是如何驯服Tiny的(下)
  2. 力扣(LeetCode)刷题,简单+中等题(第35期)
  3. jQuery开发技巧
  4. c语言递归最小值,递归求最大最小值算法 分治策略(c语言实现)
  5. 几个高逼格 Linux 命令!
  6. 必填字段的自定义JSF验证器
  7. 了解JavaScript中的Memoization以提高性能,再看React的应用
  8. 「雕爷学编程」Arduino动手做(21)——激光开关模块
  9. XOS 详解1: os_s_xxxx.s
  10. 朴素贝叶斯(naive Bayes)原理与应用
  11. 离线网页地图开发-详细开发过程
  12. 完整图书馆管理系统(包含设计思路、图形界面、后台数据库)
  13. HTML5 教程(四) - 内联元素
  14. 为什么杜蕾斯的文案工资月薪5万?
  15. 计算机专业英语职高 试卷,2020年河南高职单招英语样卷及答案分享
  16. include,include_once,require,require_once的区别
  17. 微信开发-微信公共账号申请与接入(1)
  18. 给bootstrap-treeview增加点击事件,单击菜单也能展开和折叠
  19. uniapp——轮播图(官方)、卡片轮播图
  20. HTML期末大作业: 学生个人网页设计作品 学生个人网页模板 简单个人主页成品 个人网页制作 HTML学生个人网站作业设计代做

热门文章

  1. 《Progressive Growing of GANs for Improved Quality, Stability, and Variation》-论文阅读笔记
  2. Java获取时间与Linux不一致
  3. dofilter在java中_关于java:Servlet的doFilter方法中的StringBuffer或StringBuilder?
  4. js学习(三)--同样灵活的函数、类
  5. Day2--------字符串
  6. C# WPF 实现鼠标固定在指定范围内运动
  7. ext grid设置选中行
  8. sm羞耻任务_代码简介:我仍然为自己感到羞耻的代码
  9. English 杂文
  10. 第五篇 HTML页面基本组成之 标签元素大杂烩