Spring个人记录
一、Spring
Spring是轻量级的Java框架,简化了Java开发,目的是解决企业开发的复杂性
优势:
1、非入侵式:基于Spring开发的应用中对象可以不依赖于Sprig的API
2、控制反转:IOC
3、依赖注入:DI
4、面向切面:AOP
5、容器:Spring包含且管理应用对象的生命周期
6、组件化
7、一站式
1、IOC控制反转
控制反转,就是将组件对象的创建权转移给Spring容器,IOC负责创建、管理,通过依赖注入的方式去装配、配置,同时管理生命周期。
IOC是工厂模式加反射机制组成的,IOC容器的基础是在顶层结构设计主要围绕着BeanFactory和BeanRegistry
IOC控制反转和依赖注入DI是相辅的,被注入的对象依赖IOC容器配置依赖对象,也就是说IOC是设计思想,DI是实现方式
IOC的存在减少了代码之间的耦合,增强了类的扩展性,简化了配置,提高代码复用性
IOC简单直观描述:从原本的new一个对象,变成由Spring IOC容器来负责对象的生命周期和对象关系,在运行时动态的创建、调用对象。
IOC流程文字描述:
1、根据路径、资源名称等方式,将XML文件、注解类加载到容器中
2、通过BeanDefinitionReader读取,将对象解析成BeanDefinition实例对象
3、添加Bean前置、后置,创建BeanFactory工厂
4、通过BeanFactory将对象实例化、初始化
2、AOP 面向切面编程
官方描述:AOP是通过预编译方式和运行时动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是Spring框架中一个重要内容,AOP使得程序业务逻辑之间耦合度降低,提高程序的可用性,提高了开发效率。
个人描述:通过定义切面、拦截切点实现了不同业务模块的解耦,这就是面向切面编程AOP,AOP的本质是为了解耦,它是一种设计思想
AOP中的相关概念:
1、Aspect (切面):
2、JoinPoint (连接点)
3、Advice (通知)
4、inter-type declaration (引入)
5、Target Object (目标对象)
6、Weaving (织入)
7、AOP Proxy (AOP代理)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」