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

Spring框架中问题补充

BeanFactory 和 ApplicationContext

BeanFactory和ApplicationContext是接口。BeanFactory接口时spring框架的顶层接口,定义管理bean的最基本的方法,例如获取实例、判断等功能。

DefaultListableBeanFactory实现BeanFactory 接口,是主要的创建bean的工厂类.

ApplicationContext也间接继承了BeanFactory,并拓展一些新的功能,之间的关系像心脏和身躯、都可以当作Spring的容器。

区别:

BeanFactory面向spring框架的基础设施,比较底层 ;
ApplicationContext由于又实现许多的接口,增加了额外的功能。

实现了BeanFactory接口的工厂,是懒加载,获取bean时才会创建对象;
实现了ApplicationContext接口的工厂,是在启动时加载所有的类,创建对象。

SpringBean 的生命周期

spring中的所说的bean对象是指spring框架创建管理的我们的对象

生命周期

1.实例化 Instantiation:通过反射机制以及工厂创建出来的原始对象
2.属性赋值 Populate 
3.初始化 Initialization:
完成对原始对象的各种功能增强AOP生成代理对象,再放到容器中使用。
4.销毁 Destruction

Spring 中的 bean 是线程安全的吗?

spring中的bean是否线程安全需要看bean的作用域。
scope="singleton" 单例:线程不安全, 使用TheadLocal为每个请求创建一个变量副本。
scope="prototype" 原型:线程安全, 一个请求到来,创建一个对象.

线程安全要从单例bean与原型bean分别说明。
原型bean:每次创建一个新对象,线程安全。
单例bean:所有线程共享实例bean,存在资源竞争。bean又分为有状态bean(用来存储数据的)和无状态bean(没有存储数据 Service,Dao 层只是方法调用)。如果单例bean是无状态的,那么线程安全。如果单例bean是有状态的,本身是线程不安全,需要自己进行线程安全的保证。

Bean 循环依赖

http://www.lryc.cn/news/11377.html

相关文章:

  • 【Leedcode】顺序表必备的三道面试题(附图解)
  • SOFA Weekly|开源人、本周贡献 issue 精选
  • 2023美赛 ICM E题详细版思路
  • 【LeetCode】剑指 Offer(3)
  • springboot simple (13) springboot Elasticsearch(Elasticsearch8.5.1)
  • 《爆肝整理》保姆级系列教程python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
  • 分享111个HTML旅游交通模板,总有一款适合您
  • guava中ImmutableList使用示例详解
  • ASE28N50-ASEMI高压N沟道MOS管ASE28N50
  • MyBatis缓存
  • Linux环境下(CentOS 7)安装Java(JDK8)
  • 基于STM32L431+Liteos的串口空闲中断加DMA循环接收
  • BZOJ4403 序列统计
  • 如何正确使用 钳位二极管
  • 【C语言进阶】动态内存管理
  • 第一批因ChatGPT坐牢的人,已经上路了
  • Eclipse下Maven的集成
  • Elasticsearch7学习笔记(尚硅谷)
  • 前端学习第一阶段-第7章 品优购电商项目
  • cocos2dx 4.0 - cpp - pc版 环境搭建
  • 剑指 Offer 53 - I. 在排序数组中查找数字 I
  • 华为OD机试 - 删除指定目录(Python) | 机试题算法思路 【2023】
  • PowerShell Install Office 2021 Pro Plus Viso Professional
  • KubeSphere实战
  • Linux 简介
  • java面试题-泛型异常反射
  • 详细解读ChatGPT:如何调用ChatGPT的API接口到官方例子的说明以及GitHub上的源码应用和csdn集成的ChatGPT
  • 九龙证券|最新评级情况出炉,机构扎堆这一板块!聚氨酯龙头获得最多关注
  • 考研复试机试 | C++ | 尽量不要用python,很多学校不支持
  • ChatGPT时代,别再折腾孩子了