Spring其它知识点

33.Spring 源码用到了哪些设计模式?

  1. 工厂模式:通过BeanFactory或者ApplicationContext创建Bean对象。BeanFactory是延迟注入,使用到Bean的时候才注入。ApplicationContext是在容器启动时,一次性创建所有的Bean。
  2. 单例模型:一类对象只能有一个实例,比如线程池、缓存、注册表和日志对象等。单例Bean可以节省对象创建的空间,Spring Bean默认的作用域就是单例Bean。
  3. 代理模式,AOP就是使用的代理设计模式,将那些与业务无关,却被业务共同调用的模块封装起来。减少重复代码,降低模块间的耦合。
  4. 观察者模式,是一种对象行为型模式。它表示的是一种对象与对象之间具有依赖关系,当一个对象发生改变的时候,依赖这个对象的所有对象也会做出反应。比如我们每次添加商品的时候都需要重新更新商品索引,这个时候就可以利用观察者模式来解决这个问题。

34.Spring如何处理线程并发的问题?

Spring默认的Bean作用域是单例,多个线程同时操作同一个Bean实例。若Bean包含可变成员变量,可能引发线程安全问题。通常又三种解决方案:

  1. 将Bean设计为无状态(推荐),不保存可变成员变量,仅通过方法参数或局部变量处理数据,此时单例Bean是线程安全的。
  2. 使用@Scope注解指定作用域为原型,每次请求Bean时创建新实例,避免多线程共享同一实例。
  3. 通过ThreadLocal为每个线程保存变量副本,确保线程隔离。
  4. 使用Synchronized同步锁控制并发访问,性能低。
相关推荐
suaizai_23 分钟前
Spring7新宠:RestClient全面解析
spring
摇滚侠33 分钟前
Java 全栈开发实战教程 课程笔记 34-36
java·笔记
芝士熊爱编程38 分钟前
创建型模式-单例模式
java·单例模式·设计模式
程序猿DD41 分钟前
OPC必备!在 Cloudflare Worker 上免费部署 AI 网关:集中管理与供应 Token
后端
大模型码小白42 分钟前
Spring AI 框架实战:Java 后端集成大模型的架构设计与工程落地
java·人工智能·python·spring
LucianaiB1 小时前
遇到 Seed Evolving,我终于把脑海里的小说世界图谱做出来了:《斗破苍穹》篇
后端
weixin_BYSJ19871 小时前
「课设设计」springboot校园超市助购系统26449 (附源码)
java·javascript·spring boot·python·django·flask·php
栋***t1 小时前
从“纸质试卷”到“AI智能组卷”,麦塔在线考试系统如何重构出题逻辑?
java·大数据·人工智能·算法·重构
CHANG_THE_WORLD1 小时前
深入理解递归:从函数调用到调用栈的完整执行过程
java·开发语言·算法
xexpertS1 小时前
CI/CD 熔断机制:如何通过编排级熔断器提升开发者效率
java·linux·运维