对SpringIOC和SpringAOP的理解
SpringIOC和SpringAOP是Spring的两个核心组件。
SpringIOC:SpringIOC是一个管理bean的容器,能够帮我们管理bean的整个生命周期,在没有SpringIOC的时候,我们需要自己手动的管理bean以及bean的依赖关系,这样会增加耦合,而有了SpringIOC,它能帮我们管理bean以及bean的依赖关系,使得代码解耦。
DI:依赖注入,DI是SpringIOC的实现方式,由容器动态的将依赖关系注入到组件中。
依赖注入的三种方式:setter注入、构造器注入、接口注入。
SpringAOP:面向切面编程,它能抽取出非核心业务代码根据要织入的位置,统一解决一批组件的共性问题,比如:记录日志、事务处理等。
SpringAOP的实现方式:SpringAOP有两种实现方式:
(1)JDK动态代理:通过反射来接收被代理的类,并且被代理的类要实现接口。JDK 动态代理的核心是 InvocationHandler 接口和 Proxy 类 。
(2)CGLib动态代理:如果被代理的类没有实现接口,则可以用CGLib动态代理,CGLIB
是通过继承的方式做的动态代理,因此如果某个类被标记为 final
,那么它是无法使用 CGLIB
做动态代理的。
Spring事务基于SpringAOP实现:在方法前后进行拦截,方法开始前开启事务,方法结束后提交事务或者回滚事务。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了