spring的IOC和AOP机制

ioc(控制反转  inversion of control)aop (Aspect-Oriented Programming) 是spring的灵魂

我的理解:
控制反转
就是说对原来对象的创建,也就是new一个对象,都是我们手动完成的,但是引入了ioc的思想之后,
我们将对象的创建交给spring容器而不需要我们手动进行创建,我们要用的时候只需要将某个需要使用的对象
注入(@Autoware, @Resource,或者其他方法),然后直接调用即可,依赖的创建有两种方式,一种是直接在
启动容器时立马创建,一种是延迟创建,也就是懒加载的方式,依赖注入(DI)和控制反转是同一个概念。

 

面向切面编程
就是说在我们不需要修改原有代码的前提下,对原有的代码进行功能的增强,例如利用aop进行方法
添加日志,可以在执行前后进行日志输出,aop也算是一种解耦思想的体现,让代码耦合率降低,提高代码的可用性,
让代码也更容易扩展和维护。下面是我对aop的理解,用一张图展示核心思想,大概就是oop是一种垂直的关系,而不
能实现功能切入水平:

 



用到的设计模式

ioc使用了工厂模式加反射实现,通过sessionFactory去注入实例,通过反射动态的创建对象
aop使用了代理模式,代理模式是常用的java设计模式。
aop的实现主要分为两大类:一类是动态代理,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;
二是采用静态代理,引入特定的语法创建页面,从而使得编译器可以在编译期间织入有关代码。

 

posted on   你就学个JVAV?  阅读(29)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示