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

Spring的一些知识点

  1. 什么是Spring?

Spring是一种轻量级的开发框架,旨在提高开发人员的开发效率以及系统的可维护性。
Spring的核心模块
在这里插入图片描述
Spring Core是基础模块,可以说Spring的其他功能都要依赖于该类库,主要提供IOC的依赖注入功能;
Spring Aspects:该模块为与Aspects的集成提供支出;
Spring Aop: 提供了面向切面的编程实现;
Spring JDBC:为Java的数据库连接模块;
Spring JMS:Java消息服务;
Spring ORM:用于支持ORM工具;
Spring Web:为创建Web应用提供支持;
Spring Tests:提供Junit和TestNG测试的支持。

  1. 什么是Spring的IOC?

IOC(控制反转)是一种设计思想,就是将原本在应用程序中创建对象的控制权交由Spring的管理。IOC容器是Spring用来实现控制反转的载体,IOC容器实际上就是一个Map,Map中存放了各种对象。
将对象之间的相互依赖交由Spring去管理,并由IOC容器完成对象的注入,这样可以很大程度上简化应用的开发。

  1. 什么是Spring的AOP?

AOP(面向切面编程)能够将那些与业务无关,却为业务模块所共有的逻辑或责任(比如事务管理、日志管理、权限控制)封装起来,便于减少重复代码,降低模块间的耦合度,并利于将来的可扩展性和可维护性。

  1. Spring 中的 bean 的作⽤域有哪些?
  • Singleton (单例):唯一的bean实例,Spring中的bean默认都是单例的;
  • Prototype: 每次请求都是创建一个新的bean实例;
  • Request: 每次http请求都会产生一个bean,该bean在当前http request内有效;
  • Session: 每次http请求都会产生一个bean,该bean在当前http Session内有效;
  • Global-session: 全局session作用域,仅仅在基于protlet的web应用中才有意义,Spring5已经没有了。
  1. Spring 的事务传播机制?
  • required: 如果当前存在事务,则加入该事务;如果不存在事务,就新开启一个事务,默认的事务传播机制。
  • supports: 如果当前存在事务,则加入该事务;如果不存在事务,就以非事务的方式运行。
  • mandatory: 如果当前存在事务,则加入该事务;如果不存在事务,则抛出异常。
  • required_new: 创建一个新的事物,如果当前存在事务,就把当前事物挂起。
  • not_supports: 以非事务方式运行,如果当前存在事务,则把当前事务挂起。
  • never: 以非事务方式运行,如果当前存在事务,则抛出异常。
  • nested: 如果当前存在事务,则创建⼀个事务,作为当前事务的嵌套事务来运⾏;如果当前没有事务,则该取值等价于required.
  1. Spring中bean的生命周期?
    1. 解析类得到BeanDefinition;
    2. 如果类有多个构造方法,推断类的构造方法;
    3. 确定构造方法,进行实例化得到一个对象;
    4. 对于对象中的属性进行依赖注入;
    5. 回掉Aware方法;
    6. 执行BeanPostProcesses的前置化方法;
    7. 调用初始化方法;
    8. 执行BeanPostProcesses的后置化方法;在这里进行AOP
    9. 如果当前Bean是单例的,则放入单例Map池中;
    10. 使用Bean;
    11. Spring容器关闭时候调用DisposableBean的destroy()方法;
http://www.lryc.cn/news/17955.html

相关文章:

  • 使用WordPress快速搭建外贸网站教程
  • 在 vue 或 react 项目中使用 mockjs 搭建 mock server
  • 【十一届蓝桥杯】
  • vm 网络配置
  • 2023年CDGA考试-第11章-数据仓库和商务智能(含答案)
  • 从0-1搭建流媒体系统之live555 安装、运行、转发、拉流
  • 搭建个人博客保姆级教程(二)
  • 数字图像处理与Python实现-Pillow图像处理
  • HMM隐马尔可夫模型 | 关键原理+面试知识点
  • 【Leedcode】数据结构中链表必备的面试题(第三期)
  • D1.Chopping Carrots (Easy Version)【数学,二分,暴力,思维】
  • 【Maven】(二)使用 Maven 创建并运行项目、聊聊 POM 中的坐标与版本号的规则
  • (考研湖科大教书匠计算机网络)第六章应用层-第六节:电子邮件
  • 一、初识TypeScript、什么是类型系统
  • 一文了解什么是字节对齐(超详细)
  • Java无法通过形参设置为null改变实参
  • GEE:样本点选择教程
  • 3.知识图谱相关学习资料汇总,提供系统化的知识图谱学习路径。一份详细的指南,补全你知识的漏洞
  • TypeScript学习笔记(一)编译环境、数据类型、函数类型、联合类型
  • 为什么要移除数据库物理外键?
  • Linux 计划任务讲解
  • Qt智能指针模板类的使用方式和区别总结
  • 【STL】模拟实现vector
  • Window 的 PHP XAMPP 安装 mongodb 的扩展
  • Codeforces Round #849 (Div. 4)(E~G)
  • 网易云音乐财报解读:收入大增亏损收窄,“云村”草长莺飞
  • MariaDB-10.8.6安装+主从搭建
  • Win11系统user profile service服务登录失败解决方法
  • Solon2 之基础:四、应用启动过程与完整生命周期
  • Java性能分析