Spring基础: Bean的两种创建规则,三种创建方式,作用范围,生命周期

理解 Spring Bean Spring IoC 容器本身无法直接识别配置元数据。为此,需要将这些配置信息转换为 Spring 能够理解的格式——对象。类名:Bean 的全限定类名,必须是具体类,不能是抽象类或接口。行为配置:包括作用域、自动绑定模式、生命周期回调等元素。依赖关系:对其他 Bean 的引用,也称为合作者或依赖。属性设置:Bean 属性的配置。 阅读详情

控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。

加载配置文件两种方式:

* ClassPathXmlApplicationContext:它是只能加载类路径下的配置文件 (极力推荐使用)
* FileSystemXmlApplicationContext:它是可以加载任意路径下的配置文件

Spring容器创建Bean的两种规则:1.即时加载(ApplicationContext)2.延时加载(BeanFactory)

ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
即时加载方式,只要解析完配置文件,就立马加载。
Resource resource = new ClassPathResource("bean.xml");
BeanFactory factory = new XmlBeanFactory(resource); 延时加载方式,什么时候用,什么时候加载

 

 

Spring Bean生命周期源码详解 之后child需要根据BeanDefinition来生成Bean对象之前,需要进行BeanDefinition的合并,得到完整的child的BeanDefinition,也就是RootBeanDefinition。我们知道BeanPostProcessor接口的作用是在bean初始化前和初始化后执行一些方法,Spring提供了该接口的子接口来进行实例化前后执行的一些方法。可以在这个步骤中,对Bean最终进行处理,Spring中的AOP就是基于初始化后实现的,初始化后返回的对象才是最终的Bean对象。 阅读详情

相关推荐

机械臂控制的基础知识

在现代工业中,机械臂的自动化控制已经成为智能制造的重要一环。控制机械臂涉及多个学科,包括机械设计、运动学、控制理论和编程等。本文将从以下几个方面介绍机械臂控制的核心知识点:机械臂的构成、运动学分析、动力学建模、控制方法及编程实现。

qq_45728381的博客 5470

springboot中创建bean的7种方式

Spring 是一款广泛应用于企业级应用程序开发的 Java 框架,其 IOC 和 DI 特性可以有效地管理应用程序中的对象,提高了应用程序的可维护性和可扩展性。那你知道spring有哪些方式将bean放入容器嘛?今天就给大家总结一下。

BASK2312的博客 2380

【Ensp】FTP服务器设置和FTP解析

大部分的多媒体多媒体应用协议,如SIP,FTP,NetMeeting协议等,使用约定的固定端口来初始化一个控制连接,再动态地选择端口用于数据传输,并且这些端口选择是不可预测的。在防火墙设置时,可以通过ASPF(应用层报文过滤)中的Server Map表来满足多通道协议的正常工作,它正常检测应用层报文信息,并动态地根据报文内容创建和删除临时的Server Map表项,以允许其它非约定端口通过防火墙。(5)我们可以在路由器或能访问ftp服务器的设备上,通过cli命令行的方式来访问ftp服务器。

进击的小小白 1863

SpringBoot根据配置文件动态创建Bean

如果现在需要实现一个这样的需求: 根据配置信息动态控制是否创建任意Bean 通常我们会定义这样的配置: application.yml: 实现业务需求:根据enbaled控制下面bean-class是否创建

Yh360311的博客 7521

VSCode上搭建C/C++开发环境(vscode配置c/c++环境)Windows系统---保姆级教程

关于VSCode上搭建C/C++开发环境的内容,到这里就结束了,这里博主感叹一下,VSCode真的挺强大的,作为一个编辑器,可以通过和编译器链接成为开发环境,将环境配置好的话,在这上面写代码似乎也是个不错的选择。大家有任何疑问,欢迎在评论区中提出,本篇博客有任何问题和错误也欢迎来和博主讨论,真心希望能和大家一起进步。最后,如果本篇博客对你有帮助的话,能不能给博主一个三连啊!

2303_79329831的博客 8万+

MCU中GPIO口的驱动方式

MCU中GPIO口的驱动方式 导读: MCU芯片中GPIO口的驱动方式大的可分为输出和输入两类,小的分可以分为8种。 一、四种输入方式 ①上拉输入: 上拉输入抗干扰能力强,特别适合接地信号的输入(比如低电平有效的按键信号输入)。其工作原理如图1所示。 I/O 端口与TTL 施密特触发器之前接入了一个30K~50K 欧姆的上拉电阻,当I/O 端口悬空时,此时MCU 也能读到稳定的高电平状态,...

优快云Frewen的博客 3374

SQL Server——规则是什么?规则和约束有什么不同?

目录 规则是什么? 如何创建一个规则? 如何删除规则? 如何创建约束? 规则和约束有什么不同? 规则是什么? 是单独的SQL Server对象,可以关联到一个或几个表中的一列或几列。它可以使用多种方式来完成对数据值的检验,可以使用函数返回验证信息,也可以使用关键字BETWEEN、LIKE和IN完成对输入数据的检查 通俗来说就是:对一个表的某一列创建一个规则,当用户插入数据时,能...

一起加油吧~ 4350

微信小程序启用蓝牙设备特征值变化时的notify功能

注意:这里的serviceUUID、notifyCharacteristicUUID 我会在后面写入数据时做重点说明。isNotifyBLECharacteristic:false, //是否启用蓝牙设备服务特征 notify。二、启用蓝牙设备特征值变化时的notify功能。下一篇 将继续介绍 微信小程序蓝牙设备写入数据。

wsk198726的专栏 1172

Spring bean默认名称规则

1.在使用@Component、@Repository、@Service、@Controller等注解创建bean时,如果指定bean名称, 则是指定的名称. 2.如果不指定bean名称,bean名称的默认规则是类名的首字母小写,如SysConfig - sysConfig,Tools - tools。 3.如果类名前两个或以上个字母都是大写,那么bean名称与类名一样,如RBACUserLog ...

小太阳啊凯的博客 1万+

小龙虾OpenClaw卸载全攻略,彻底清理缓存和配置,干净无残留!

不想要的小龙虾OpenClaw怎么彻底卸载?🦞本文教你如何彻底的卸载OpenClaw⚡️,Windows/macOS/Linux通用,干净无残留🧹

XiaoqiangClub的博客 314

【C#程序员入门AI】必知的一些知识

2026年C#调用AI,核心就4个概念+3种方式4个概念:大模型(大脑)、嵌入(数字密码)、向量(载体)、Agent(超级助理)3种方式:云端API(快)、本地模型(隐私)、混合部署(最佳)不用怕复杂,跟着这个思路走,你就能从“AI小白”变成“C# AI开发能手”,把AI集成到你的.NET项目里,提升效率、创造价值!

人工智能AI技术 410

spring默认注入bean规则

spring默认注入bean规则 一、使用@bean注解 1、spring boot中通过@Bean声明bean,默认情况下,bean的名称由方法名决定。另外,可以通过@Bean注解里面的name属性主动设置bean的名称。 2、通过@Autowired和@Qualifier(“queue-test”)结合使用,可以注入指定名称的bean 二、@Component、@Repository、@Service、@Controller注解配置bean 1、类名的首字母小写,例如:类名称 UserDao ,那么默

拒绝熬夜啊的博客 2951

使用NXP SBC插件开发FS26软件

FS26作为功能安全可达ASIL D的SBC,在配合NXP MCU的使用中非常广泛,本文介绍基于NXP官网的SBC代码包快速进行FS26软件的开发FS26使用过程中还有不少坑的地方,后面有空可以再介绍相关的功能。

赞的博客 650

spring中bean的作用范围(二)

1.BeanFactory: 延迟加载的思想来创建bean对象 ad 2,ApplicationContext:只要解析完配置文件,就立马创建bean,容易占用内存.

yxking1的专栏 249

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Spring Bean 的生命周期

构造器(实例化)↓依赖注入↓Aware 接口注入↓前置处理器(postProcessBeforeInitialization)↓初始化方法(afterPropertiesSet/init-method)↓后置处理器(postProcessAfterInitialization)↓使用中↓容器关闭↓销毁(destroy-method)Spring 容器通过一整套标准流程来管理 Bean,从创建、初始化到销毁,都有明确的生命周期节点。

2401_88055648的博客 1491

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

如果你每次面试前都要去背一篇Spring中Bean的生命周期,请看完这篇文章

前言当你准备去复习Spring中Bean的生命周期的时候,这个时候你开始上网找资料,很大概率会看到下面这张图:先不论这张图上是否全面,但是就说这张图吧,你是不是背了又忘,忘了又背?究其原...

做一个认真的程序员 7065

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Spring Bean生命周期详解

API的方式Xml文件方式properties文件的方式注解的方式spring中提供了一个类PropertiesBeanDefinitionReader,将xml中定义的bean解析为BeanDefinition对象,过程和xml的方式类似。下面通过properties文件的方式实现上面xml方式定义的bean。来个properties文件:beans.propertiescar.name=??car1.name=???user.name=???Java。

sxlishaobin的博客 764

Spring Bean 生命周期

生产:加载和创建 Bean 定义和实例。使用:在应用程序中管理和使用 Bean 实例。销毁:适当地销毁和清理 Bean 实例。加载 Bean 定义是 Spring 容器启动的第一步。这一步骤通过各种方式(如 XML 配置、注解扫描等)将项目中定义的所有 Bean 类找到,并放入中。

Randy的博客 2067

【Spring】原理解析:Bean的作用域与生命周期

本文将围绕 Spring Bean 的作用域与生命周期展开深度剖析,系统梳理作用域的类型与应用场景、生命周期的关键阶段与扩展点,并结合实际案例揭示其底层实现原理,为开发者提供从理论到实践的完整指导。

2301_81073317的博客 2577

Spring Bean Scope 全面解析:如何根据职责选择合适的作用范围?

在 Web 应用中处理用户请求时,直接使用 Singleton 来处理会话级数据,可能导致数据混乱。Prototype Scope 会导致每次获取 Bean 时都创建新实例,可能引发性能问题。Spring 提供了多种作用范围,根据应用场景选择合适的 Scope,可以更高效地管理资源。如果一个类存储状态(如用户数据),却被设置为 Singleton,会导致线程安全问题。Spring 支持多种方式来定义 Bean 的 Scope。

ray_paul1的博客 1396

Bean专题——什么是Bean?怎么注册、使用?生命周期?作用域?

1.什么是Bean? Bean是被实例的、组装的、及被Spring容器管理的Java对象。 Spring容器会自动完成Bean对象的实例化。 创建应用对象之间的协作关系的行为被称为:装配,这就是依赖注入的本质。 2.Spring三种装配方案 1.隐式的bean发现机制和自动装配; 1.涉及注册Bean的注解:@Component , @Repository , @ Controller , @Service , @Configration;(这些注解只局限于自己编写的类)。 2.使用Bean的注解:@

m0_38057941的博客 3754

Spring Bean作用域与生命周期全解析

这就像是往杯子倒水一样1.买个杯子2.可以对杯子进行染色等的一些属性操作3. 可以往杯子里放东西了4.接下来就是使用杯子了5.用完杯子我可以把它扔了或者卖了。

2402_87239469的博客 1480

Spring原理篇(1)--Spring创建Bean的生命周期

@TOC# Spring系列 记录在程序走的每一步___auth:huf 最近在复习Spring核心原理; 顺手记录; 一、Spring创建Bean的生命周期 在Spring的入口开始 package com.example; import com.example.service.StudentService; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure

wenaicoo的博客 1632

Spring学习(二十二) Bean配置的三种方式(XML、注解、Java类)介绍与对比

本文将详细介绍Spring Bean配置的三种不同方式的特点与使用条件。 主要包括: 基于XML的配置方式基于注解的配置方式基于Java类的配置方式 一.基于XML的配置 请看Spring学习(十二)Spring 的配置文件概述 二.基于注解的配置 Spring2.0开始引入基于注解的配置方式,即Bean的定义信息可以通过在Bean的实现类上标注注解实现。 具体关

wangxin1248的博客 3万+

面试题-----Spring bean的生命周期

本文系统介绍了Spring Bean的生命周期管理机制,包括七个关键阶段:1. 名称处理(别名解析、FactoryBean规范、三级缓存机制);2. 父子容器查找规则;3. dependsOn依赖控制;4. Scope作用域管理(singleton/prototype/request);5. 创建流程(实例化、依赖注入、初始化、销毁注册);6. 类型转换;7. 销毁机制。重点解析了循环依赖的三级缓存解决方案、父子容器隔离特性、多种依赖注入方式(@Autowired/@Resource)、初始化回调顺序(Aw

2301_80860862的博客 1347

spring框架——bean

beanClass:对应配置属性Class必填,指向一个Java类lazyInit指定bean的实例是否延时加载。dependsOn定义bean实例化的依赖关系,依赖顺序,可以定义多个依赖对象factoryBeanName对应配置name,定义Bean的唯一标识,小写字母开头。constructArgumentValues对应配置constructor-arg,给有参构造方法注入参数scope:用于定义作用域,默认单例,单例,原型,请求,会话,全局会话。

z524635690的博客 949
上一篇: http与tcp简介、三次握手与四次挥手
下一篇: mysql 分页函数limlt原理与使用小技巧(一看就懂)
乐交诤友
博客等级 码龄10年 5粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值