spring 生命周期

2023-10-27

spring 生命周期
IOC容器:
1、加载配置文件
2、资源定位
3、资源解析
4、生成BeanDefinition元信息
5、通过工厂把BeanDefinition加载到容器中
初始化bean实例,由spring产生的bean默认是单例的;
依赖注入,就是处理的,bean引用bean的问题
IOC就是处理的事,bean的实例化的问题
依赖注入其实分为两个步骤:
1. 通过反射创建实例;
2. 获取需要注入的接口实现类并将其赋值给该接口。
IOC 与依赖注入的区别
IOC:控制反转:将对象的创建权,由Spring管理. 
DI(依赖注入):在Spring创建对象的过程中,把对象依赖的属性注入到类中。 
它们两就这样,其他什么毛线都没有了。
在Spring中,bean可以被定义为两种模式:prototype(多例)和singleton(单例)
singleton(单例):只有一个共享的实例存在,所有对这个bean的请求都会返回这个唯一的实例。
prototype(多例):对这个bean的每次请求都会创建一个新的bean实例,类似于new。
Spring bean 默认是单例模式。
对于具有prototype作用域的Bean,有一点很重要,即Spring不能对该Bean的整个生命周期负责。具有prototype作用域的Bean创建后交由调用者负责销毁对象回收资源。
一般情况下,有状态的bean需要使用prototype模式,而对于无状态的bean一般采用singleton模式(一般的dao都是无状态的)。
Spring中所有的类都会在spring容器中登记,告诉spring你是个什么东西,你需要什么东西,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。所有的类的创建、销毁都由 spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。如果你还不明白的话,我决定放弃。
IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring 生命周期 的相关文章

随机推荐

  • 【基础知识】什么是哈希冲突?

    1 什么是哈希表 哈希表 Hash Table 是一种数据结构 它可以快速地在大量数据中查找 插入和删除时数据 哈希表通过使用哈希函数将键 Key 映射到一个位置 然后在该位置存储或查找数据 哈希函数的作用是 将键转换为一个整数 这个整数通
  • linux下服务get请求发生400的问题

    今天遇到个郁闷的问题 平时在windows系统一直跑得好好的服务 在linux下图片请求出问题了 报了个莫名其妙的400问题 虽然我也怀疑问题出在params 22cols 22 22 22id 22 6 22 参数上 但把引号怎么改都改不
  • 【笔记】QString中替换掉指定字符串

    首先使用正则表达式QRegExp匹配指定字符串 然后使用QString的replace方法进行替换 QString originText KobeBryantGigiAitch QString searchText Bryant QStri
  • ubuntu下samba 安装与配置

    为了实现在windows与Linux之间资源共享 Linux操作系统提供了samba服务 samba服务为两种不同的操作系统架起一座桥梁 使Linux系统和windows系统之间可以互相通信 下面简单介绍如何在linux上添加和配置samb
  • 算法---分治策略(快排)

    分治策略之快速排序 快速排序是对冒泡排序算法的一种改进 快速排序在面试过程中被提到的概率还是很大的 本文章我将介绍一下有关快速排序的一些问题 算法思想 1 指定一个定界值 通过该值会将数组分成两部分 2 将大于定界值的数据都放在右边 小于等
  • LeetCode 3. 无重复字符的最长子串

    LeetCode 第三题 无重复字符的最长子串 难度中等 给定一个字符串 s 请你找出其中不含有重复字符的 最长子串 的长度 示例 1 输入 s abcabcbb 输出 3 解释 因为无重复字符的最长子串是 abc 所以其长度为 3 示例
  • mysql中如何统计某字段里某个字符的个数

    如我的表order里有一个字段order num 里面存的是一些订单号 形式如 od 135484315315431541541 现在我要统计这个订单号有多少个8 如出现4个8就算中奖 请问如何把这些数据查找出来 select length
  • 查看Redis信息和状态

    redis cli连接服务器后 使用info命令查看Redis信息和状态 info 其中memory段显示了redis的内存使用状态 INFO section 以一种易于解释 parse 且易于阅读的格式 返回关于 Redis 服务器的各种
  • ESP32 模拟键盘的简单操作 (ESP32 for Arduino)

    本来是以前做过的ESP32项目 但是想拿来用在别的项目上时发现找不到了 所以重新写一下这个项目 记录一下 首先说明 使用ArduinoIDE 模块型号为esp32 wroom 32 库文件链接 https github com T vK E
  • 4sum

    基本的 穷举前面的数的组合 后两个数夹逼法的算法 O n 3 1 排序 2 主循环穷举前两个数的组合 保证数组至少剩下2个数 i 0 i
  • ssm毕设项目动态个人网站8j9pz(java+VUE+Mybatis+Maven+Mysql+sprnig)

    ssm毕设项目动态个人网站8j9pz java VUE Mybatis Maven Mysql sprnig 项目运行 环境配置 Jdk1 8 Tomcat8 5 Mysql HBuilderX Webstorm也行 Eclispe Int
  • 2022年国内十大低代码平台盘点,哪个值得一试?

    编者按 火爆的低代码平台究竟是什么 它有什么特殊的魅力一直吸引着大众的注意 本文将带你走近低代码 盘点国内典型的十大低代码平台 概要 1 什么是低代码平台 2 国内的低代码平台盘点 3 选型低代码平台时需要注意什么 什么是低代码平台 低代码
  • Python+OpenCV手势识别Mediapipe(基础篇)

    Python OpenCV手势识别Mediapipe 新手入门 前言 项目效果图 认识Mediapipe 项目环境 代码 核心代码 视频帧率计算 完整代码 项目输出 结语 前言 本篇文章适合刚入门OpenCV的同学们 文章将介绍如何使用Py
  • 《Spring源码深度分析》第2章 容器的基本实现

    目录标题 前言 一 容器的基本用法 1 创建一个简单的Spring项目 2 功能分析 3 spring beans模块 1 核心类 DefaultListableBeanFactory a 容器加载相关类图 b XmlBeanFactory
  • 在Unity 2019.3中更快地进入播放模式

    Play Mode is at the core of what makes Unity fun to work with But as your projects get more complex it can take a while
  • C语言基础入门48篇_32_指针铺垫知识:计算机分级结构(CPU<-->内存<-->硬盘、程序存储在硬盘,运行程序时,操作系统将程序拷贝到内存,通过总线读取内存数据)

    1 计算机的体系结构 计算机采用的为分层结构 主要分为两种结构 冯诺依曼体系结构 绝大多数电脑的结构 哈佛体系结构 虽然存在不同的结构 但主要的结构均采用以下三种的层次 2 程序运行时各个层次作用 1 CPU是计算的核心 用于解析机器码和执
  • HTTP 错误 500.19 - Internal Server Error 错误代码 0x8007000d

    HTTP 错误 500 19 Internal Server Error 无法访问请求的页面 因为该页的相关配置数据无效 web config 里的红线框起来的要去掉 查看链接地址 https support microsoft com z
  • 用户态文件系统fuse学习

    FUSE概述 FUSE 用户态文件系统 是一个实现在用户空间的文件系统框架 通过FUSE内核模块的支持 使用者只需要根据fuse提供的接口实现具体的文件操作就可以实现一个文件系统 在fuse出现以前 Linux中的文件系统都是完全实现在内核
  • Zabbix 系统监控(二)Linux 系统监控

    windows 系统硬件信息获取 linux 系统监控 linux 系统硬件信息获取 5 windows 系统硬件信息获取 本文通过在 OS 操作系统层面上 主要获取 windows 服务器下 CPU 信息 内存信息 硬盘信息 操作系统 服
  • spring 生命周期

    spring 生命周期 IOC容器 1 加载配置文件 2 资源定位 3 资源解析 4 生成BeanDefinition元信息 5 通过工厂把BeanDefinition加载到容器中 初始化bean实例 由spring产生的bean默认是单例