背诵 Spring知识
1、什么是Spring?
广义上的 Spring 泛指以 Spring Framework 为核心的 Spring 技术栈
狭义上的 Spring 特指 Spring Framework,也称它为 Spring 框架,具有 IOC 和 AOP的特性
2、Spring框架有哪些组成部分,作用是什么?
Spring框架有:
1、Spring Test:提供了对测试的支持
2、Spring Core:核心类库,所有功能都依赖于该类库,提供IOC和DI服务
3、Spring Context:提供框架式的Bean访问方式
4、Spring ORM:对现有的ORM框架的支持;
5、Spring DAO:对JDBC的抽象封装,简化了数据访问异常的处理,并能统一管理JDBC事务;
6、Spring AOP:提供了AOP服务
7、Spring Web:为创建Web应用程序提供支持
3、Spring的特点:
IoC:控制反转,一种设计思想,将原本在程序中手动创建的对象,交由Spring框架来创建和管理,Spring框架来负责 控制对象的生命周期和对象间的依赖关系
AOP:面向切面编程,将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码
实现:Spring 中的 AOP 是通过动态代理实现,
4、IOC的原理:
工厂模式:
反射机制:
5、什么是DI、依赖注入?
简单地说:在应用程序运行时,依赖 IoC 容器来 动态注入 对象所需要的外部依赖
实现原理:通过反射机制实现注入的,反射机制允许程序在运行的时候动态的生成对象
6、Spring的优点
1、低侵入式设计,代码的污染极低;
2、依赖注入机制,将对象之间的依赖关系交由框架处理,减低组件的耦合性;
3、提供了AOP技术,支持将一些通用任务,如安全、事务、日志、权限等进行集中式管理,从而提供更好的复用
4、支持主流的应用框架
7、Spring AOP
Spring AOP使用的动态代理;所谓的动态代理就是说AOP框架不会去修改字节码,而是每次运行时在内存中临时为方法生成一个AOP对象,这个AOP对象包含了目标对象的全部方法,并且在特定的切点做了增强处理,并回调原对象的方法
Spring AOP中的动态代理主要有两种方式,JDK动态代理 和 CGLIB动态代理
(1)JDK动态代理只提供接口的代理,不支持类的代理,要求被代理类必须实现接口
(2)如果被代理类没有实现接口,那么Spring AOP会选择使用CGLIB来动态代理目标类;
CGLIB(Code Generation Library),是一个代码生成的类库,
作用:可以在运行时动态的生成指定类的一个子类对象,并覆盖其中特定方法并添加增强代码,从而实现AOP;
注意:CGLIB是通过继承的方式实现动态代理,因此如果某个类被标记为final,那么它是无法使用CGLIB做动态代理的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程