当前位置: 首页 > news >正文

Spring原理(Bean的生命周期)

一、Bean的作用域

Bean 的作⽤域是指 Bean 在 Spring 框架中的某种⾏为模式。
⽐如单例作⽤域: 表⽰ Bean 在整个 Spring 中只有⼀份, 它是全局共享的. 那么当其他⼈修改了这个值之后, 那么另⼀个⼈读取到的就是被修改的值
作用域说明
singleton每个SpringIoc容器内同名称的Bean只有一个实例(单例)默认
prototype每次使用该bean时会创建新的实例(非单例)
request每个HTTP请求生命周期内,创建新的实例(Web环境中,了解)
session每个HTTP Session生命周期内,创建新的实例(Web环境中,了解)
application每个ServletContext生命周期内,创建新的实例(Web环境中,了解)
websocket每个WebSocket生命周期内,创建新的实例(Web环境中,了解)

一个ServletContext可以包含多个ApplicationContext,但是一般就只启动一个ApplicationContext

二、Bean的生命周期

Bean的生命周期可以分为以下5个部分:

1.实例化(为Bean分配内存空间)

2.属性赋值(Bean的注入和装配,比如@Autowired)

3.初始化

a.执行各种通知,如:BeanNameAware,BeanFactoryAware,ApplicationContextAware的接口方法

b.执行初始化方法

xml定义init-method

使用注解的方式@PostConstruct

执行初始化后置方法(@BeanPostProcessor)

4.使用Bean

5.销毁Bean

a.销毁容器的各种方法,如@PreDestory,DisposableBean接口方法,destroy-method

@Component public class BeanLifeComponent implements BeanNameAware { private Dog singletonDog; public BeanLifeComponent() { System.out.println("执行构造方法"); } @Override public void setBeanName(String name) { System.out.println("执行通知BeanNameAware, name:" + name); } @PostConstruct //初始化方法 public void init() { System.out.println("执行初始化方法"); } public void use() { System.out.println("执行use方法"); } @PreDestroy public void destory() { System.out.println("执行销毁方法"); } }

http://www.jsqmd.com/news/600388/

相关文章:

  • SEO新手如何利用Google Search Console_SEO新手如何进行外链建设
  • ESP32平台ST7703 RGB TFT驱动组件(PlatformIO兼容)
  • 一个context.md + 5大工作流如何让AI接管你的全部重复劳动
  • OpenClaw长期运行维护:Qwen3-14b_int4_awq服务监控与自动恢复
  • OpenClaw密码管理方案:Qwen3-14b_int4_awq辅助生成与安全存储
  • 应用安全 --- 逆向技巧 之 ELF节(Section) 与 段(Segment)
  • STM32遥控灭火消防小车设计与实现
  • OpenClaw跨平台控制:Qwen2.5-VL-7B图文模型手机端调用方案
  • 2026年4月成都奢品爱好者名表维修推荐指南 - 优质品牌商家
  • 前期看论文,不要追求速度、注重质量、注重质量关注用了什么方法、什么数据集、达到了什么效果、写作引言如何介绍、方法该如何描述、实验怎么去夯实、结论如何去展望
  • 单片机单IO口控制双LED的电路设计与实战
  • 嵌入式Linux无线服务器搭建指南
  • OpenClaw小团队协作:Qwen3.5-9B共享任务队列实践
  • 24小时不间断运行:OpenClaw+Qwen3-32B的稳定性监测报告
  • 基于K210和stm32的小区门禁系统设计[单片机]-计算机毕业设计源码+LW文档
  • 3个突破式方法破解NCM加密:让音乐收藏在全设备自由流转
  • 【C++】内存管理
  • GPSP协议库:Arduino轻量级串行通信中间件
  • GraphRAG为什么让AI告别幻觉?从分块检索到知识图谱的演进
  • JS的继承(6种)
  • 如何评估企业网站SEO的效果
  • ESP32-S3摄像头选型与调试:为什么我选了GC0328,以及如何搞定它的驱动和帧率问题
  • 二叉树中堆的数据结构
  • 2026年热门的非标热压机优质公司推荐 - 品牌宣传支持者
  • Flutter OH 外接纹理第一帧(背景)自定义
  • OpenClaw+千问3.5-35B-A3B-FP8:自动化代码审查助手
  • Dynamic Voxelization目标检测环境配置、Dynamic Voxelization目标检测模型代跑训练、Dynamic Voxelization目标检测模型改进创新Dynamic
  • 从命令到思想:Shell脚本编程的“一课一得”
  • OpenClaw安全实践:千问3.5-27B本地化部署的3重防护
  • 汽车电子MISRA C编码规范详解与实践