Spring中实例化Bean中的三种方式

8 篇文章 1 订阅
订阅专栏

Spring中实例化Bean中的三种方式

通过构造器实例化

可以直接使用默认的构造器实例化Bean

先创建Bean04类,为了等一下能够区分是哪种方式实例化的Bean,所以可以在该类中添加一个方法输出一条语句。

public class Bean04 {
    // 构造器实例化
    public void msg() {
        System.out.println("构造器实例化Bean");
    }
}

再编写配置文件bean04.xml,再该配置文件中写入如下内容。

<bean id="bean04" class="top.lukeewin.dao.Bean04"></bean>

最后编写测试类。

	// 测试构造器实例化
    @Test
    public void test01() {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("bean04.xml");
        Bean04 bean04 = (Bean04) ctx.getBean("bean04");
        bean04.msg();
    }

通过静态工厂实例化

创建两个类,一个类作为Bean类,另一个作为静态工厂类,并且静态工厂类中必须有一个静态方法。静态方法返回一个Bean实例。

定义一个Bean类

public class Bean05 {
    // 静态工厂实例化
    public void msg() {
        System.out.println("静态工厂实例化Bean");
    }
}

定义一个静态工厂类

public class StaticBeanFactory {
    // 静态工厂实例化
    public static Bean05 getInstance() {
        return new Bean05();
    }
}

然后需要配置xml配置文件。

需要注意的是:配置文件中一定要记得加上factory-method属性,并且该属性的值是静态工厂中的静态方法,即返回实例的方法。同时还需要注意class路径写的是静态工厂的类路径,而不是实例的类路径。

<bean id="bean05" class="top.lukeewin.dao.StaticBeanFactory" factory-method="getInstance"></bean>

最后编写测试代码

	// 测试静态工厂实例化
    @Test
    public void test02() {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("bean04.xml");
        Bean05 bean05 = (Bean05) ctx.getBean("bean05");
        bean05.msg();
    }

通过实例工厂实例化

创建两个类,一个作为Bean类,另一个作为实例工厂类,**这里不需要定义为静态方法。**只需要设置一下配置文件即可。

定义一个Bean类

public class Bean06 {
    // 实例工厂实例化
    public void msg() {
        System.out.println("实例工厂实例化Bean");
    }
}

定义一个实例工厂类

public class BeanFactory01 {
    // 实例工厂实例化
    private Bean06 getInstance() {
        return new Bean06();
    }
}

然后编写配置文件。

配置文件中需要注意:分别定义两个bean标签,其中实例工厂类中的bean标签和其它普通bean标签一样,但是实例类中的bean标签必须要有factory-bean属性,并且属性的值是实例工厂的id值。还需要有factory-method属性,该属性的值指明了由实例工厂中的哪个方法产生实例。

<bean id="bean06_instance" class="top.lukeewin.dao.BeanFactory01"></bean>
<bean id="bean06" factory-bean="bean06_instance" factory-method="getInstance"></bean>

编写测试代码。

	// 测试实例工厂实例化
    @Test
    public void test03() {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("bean04.xml");
        Bean06 bean06 = (Bean06) ctx.getBean("bean06");
        bean06.msg();
    }

最后三种方式的运行结果如图所示。

image-20210901121728940

【Spring系列教程01】Spring中实例化对象的三种方式


本文章对应的视频, 请点击这里。

更多内容欢迎访问我的 个人博客,以及我的 个人B站

spring实例化Bean的几种方式
C_History的博客
04-17 2969
一.Bean的实例化方法如下三种 1.使用类构造器实例化 2.使用工厂方法(静态工厂方法、实例工厂方法) 3.实现FactoryBean接口 二.使用类构造器实例化: 在配置bean时,使用class属性指定类的全名称(即全类名) 三.工厂方法实例化 1.静态工厂方法: 方法就是将对象创建过程封装到静态方法,当客户端需要对象时,只需要简单的调用静态方法。 要声明通过静态方法创建的bean,需要在bean的class属性指定拥有该工厂方法的类,同时在factory-method属性指定工厂方法的名称,最
Spring Bean实例化实现过程解析
08-25
Spring 框架Bean 的实例化是通过容器来管理的,容器会根据配置文件的信息来实例化 Bean。下面我们将详细介绍 Spring Bean 实例化的实现过程。 1. 构造器实例化Spring 框架,默认情况下,容器会通过...
spring有三实例化bean的方式
上兵伐谋,其次伐交,其次伐兵,其下攻城
11-11 632
spring有三实例化bean的方式: 一、使用构造器实例化; 二、使用静态工厂方法实例化; 三、使用实例化工厂方法实例化。   每种实例化所采用的配置是不一样的: 一、使用构造器实例化; 这种实例化方式可能在我们平时的开发用到的是最多的,因为在xml文件配置简单并且也不需要额外的工厂类来实现。   Xml代码  
Spring实例化Bean的三种方式
大力东++
01-19 171
获取Bean的代码: ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"beans.xml"}); PersonServiceBean psb = (PersonServic...
Springbean的实例化方式
小老头's Home
12-14 1019
Springbean的实例化常用的有四种方式: 1,使用bean的构造方法实例化bean;(如果直接在配置文件配置bean的id和class,那么要求这个bean必须有默认的无参的构造方法) 2,静态工厂方法: 注意:在class里面配置的是工厂的类型,但是在得bean的时候,用的是bean的类型; 静态工厂方法的实例化过程; 1,读入配置文件:
Spring三种Bean的实例化方法
Array丶凝
03-02 161
(本文内容有网上+自己修改,如有错误,请指正,谢谢。) 在spring实例化bean的方式: 一、使用构造器实例化; 这种实例化方式可能在我们平时的开发用到的是最多的,因为在xml文件配置简单并且也不需要额外的工厂类来实现。 id是对象的名称,class是要实例化的类,然后再通过正常的方式进调用实例化的类即可,比如: ...
Spring】—— bean如何实例化(四种方式)?
最新发布
张修宇的博客
01-11 1471
bean用来定义Spring核心容器管理的对象。bean有四种方式实例化:构造方法实例化、静态工厂实例化、实例工厂实例化、FactoryBean实例化
详解Springbean实例化三种方式
08-30
本文将详细探讨Springbean实例化三种主要方式:普通构造方法创建、静态工厂创建和实例工厂创建。 1. 普通构造方法创建: 这是最常见、最直观的方式,适用于大部分情况。在Spring配置文件,我们通过`<bean>`...
Spring实例化bean的四种方式详解
08-28
总结,Spring提供了多种实例化和依赖注入Bean的方式,以满足不同场景的需求。setter方法简单易用,适用于大部分情况;构造函数方式在创建Bean时就完成依赖注入,适合对象初始化时就需要依赖的场景;静态工厂和实例...
浅谈springioc实例化bean的三个方法
08-29
Spring IOC实例化Bean有三种方法:构造器实例化、静态工厂方法实例化和实例工厂方法实例化。每种方法都有其优缺,选择哪种方法取决于实际需求。 在实际开发,我们可以根据需要选择合适的实例化方法。例如,如果...
Spring-实例化bean的四种方式
m0_61961937的博客
06-06 1089
实例化bean的四种方式的简单示例
springbean的三种实例化方式
bigbigChopper的博客
12-18 280
Bean的三种创建方式: xml配置 &lt;!-- 配置资源:把对象的创建交给spring来管理 --&gt; &lt;bean id="customerService" class="com.service.impl.CustomerServiceImpl"&gt;&lt;/bean&gt; &lt;!-- 配置使用静态工厂创建bean对象 --&gt; &lt;b
spring实例化Bean的三种方式
Garry
12-26 513
1、使用构造方法实例化 2、使用静态工厂方法实例化 3、使用实例工厂方法实例化 Bean.xml文件 <!--装配bean的三种方式,所谓的装配bean就是在xml写一个bean标签--> <!-- 第一种方式: new 实现类--> <bean id="userService1" class="com.gyf.service.UserServiceImpl"&...
Spring篇】Bean实例化的四种方式及应用案例
m0_64231944的博客
11-16 1704
创建一个工厂 Bean,该工厂可能需要一些外部条件。
spring学习之bean标签
qq_41941963的博客
10-03 237
bean 标签 作用: 用于配置对象让 spring 来创建的。 默认情况下它调用的是类的无参构造函数。如果没有无参构造函数则不能创建成功。 属性: id:给对象在容器提供一个唯一标识。用于获取对象。 class:指定类的全限定类名。用于反射创建对象。默认情况下调用无参构造函数。 scope:指定对象的作用范围。 singleton :默认值,单例的. prototype :多例的. req...
Spring实例化Bean的三种方法
unber的博客
08-09 4052
在面向对象的程序,要想调用某个类的成员方法,就需要先实例化该类的对象。
spring bean实例化三种方法
weixin_63802890的博客
07-20 2283
**/**无参构造器,创建对象时必须要用,在此处代码如果运行了,就代表创建对象时运行了此代码,对于构造器的理解看看example公共的和私有的都可以访问,有无都可以1.结论实例化bean就是用构造方法来实例化对象**/publicBookDaoImpl(){System.out.println("bookdao构造器isrunning....");}}}}}............
吃透Spring源码(十):Spring实例化Bean的五种方式源码解析
吃透Java
11-19 795
一,概述 对于我们Java来说,创建对象无非就是new或者通过反射两种方式Spring实例化对象一般是通过反射来实现的,但是Spring的强大之处不仅仅在于它为Java开发者提供了极大便利,更在于它的开放式架构,使得用户可以拥有最大扩展Spring的能力。 我们大致可以总结出以下五种实例化bean的方式: 实现InstantiationAwareBeanPostProcessor接口 实现FactoryBean接口 通过Supplier接口 工厂方法factory-method 通过反射 二,实现
Spring框架创建Bean的三种方法详解
"本文主要介绍了在Spring框架实例化Bean的三种主要方式,包括通过构造器、静态工厂方法和实例工厂方法。同时,对比了传统JavaBean与Spring Bean的差异,强调了SpringBean生命周期的管理。" 在Spring框架,...
写文章

热门文章

  • OpenAI开源语音识别模型Whisper在Windows系统的安装详细过程 13884
  • 开源语音识别faster-whisper部署教程 12486
  • faster-whisper-webui 10313
  • 可以白嫖的语音识别开源项目whisper的搭建详细过程 | 如何在Linux中搭建OpenAI开源的语音识别项目Whisper 6950
  • Nginx配置WebSocket 5451

分类专栏

  • Python 16篇
  • ASR 1篇
  • 数据库学习 9篇
  • java学习笔记 30篇
  • LLM 1篇
  • SpringBoot 10篇
  • SpringMVC 3篇
  • 项目开发 3篇
  • java web 5篇
  • Linux 7篇
  • 网络 1篇
  • Java面试 5篇
  • MyBatis 3篇
  • 微服务
  • Spring 8篇
  • 网站搭建 7篇
  • nginx 1篇
  • shiro 1篇
  • Redis 1篇
  • apache 2篇
  • tomcat 2篇
  • Cookie 1篇
  • Session 1篇
  • eclipse

最新评论

  • 开源语音识别faster-whisper部署教程

    Luke Ewin: 模型id写错了,不存在这个模型id

  • 开源语音识别faster-whisper部署教程

    aibao_b: 指定本地模型加载,但是提示错误: File "/home/gm/anaconda3/envs/whisperPro/lib/python3.11/site-packages/huggingface_hub/utils/_validators.py", line 106, in _inner_fn validate_repo_id(arg_value) File "/home/gm/anaconda3/envs/whisperPro/lib/python3.11/site-packages/huggingface_hub/utils/_validators.py", line 154, in validate_repo_id raise HFValidationError( huggingface_hub.errors.HFValidationError: Repo id must be in the form 'repo_name' or 'namespace/repo_name': '~/whisper-mode/fast-whisper-small'. Use `repo_type` argument if needed. python调用如下: # 配置 Whisper 模型 # model_size = "small" model_size = "small" path = r"~/whisper-mode/fast-whisper-small" model = WhisperModel(model_size_or_path=path, device="cpu", compute_type="float16",local_files_only=True)

  • 如何把huggingface格式的whisper模型转为openai格式

    于干439: 你好,能否付费不是fasterwhisper到服务器使用cpu渲染,2核心4gb不知道是否够用,如果可以部署请联系我盘

  • apt install报错E: Unmet dependencies. Try ‘apt --fix-broken install‘ with no packages的解决方案

    Luke Ewin: 按esc后输入:x保存退出,如果不想保存,输入:q!

  • apt install报错E: Unmet dependencies. Try ‘apt --fix-broken install‘ with no packages的解决方案

    weixin_52341563: 进入VIM之后怎么退出啊

最新文章

  • FunASR实时语音识别内网部署 | 无网络环境中的实时语音识别 | 实时语音识别
  • 如何把huggingface格式的whisper模型转为openai格式
  • 如何解决OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.报错?
2024年15篇
2023年33篇
2022年28篇
2021年29篇
2020年9篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家铸铜雕塑玻璃钢玻璃钢雕塑服务商怎么样北京广场玻璃钢雕塑定制江东玻璃钢花盆花器日照小区玻璃钢雕塑制作泉州宁德玻璃钢花盆阿坝玻璃钢雕塑公司庆阳仿真人物玻璃钢雕塑公司水富市玻璃钢雕塑价钱德阳人物玻璃钢雕塑邯郸玻璃钢雕塑厂家哪家好金山玻璃钢雕塑厂四川商业商场美陈费用北京特色商场美陈生产厂家江苏园林景观玻璃钢雕塑北京常见商场美陈哪里买云浮玻璃钢雕塑厂家销售玻璃钢彩绘马主题雕塑镇江玻璃钢花盆圆形岳阳玻璃钢门头雕塑达州玻璃钢商场美陈大连汕尾玻璃钢卡通雕塑鄂州市玻璃钢雕塑定制北京玻璃钢火龙果雕塑陕西抽象玻璃钢雕塑定制扬州玻璃钢雕塑工程浙江动物玻璃钢雕塑订做价格大型商场美陈哪家好玻璃钢雕塑加工厂家湛江市玻璃钢雕塑制作香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化