Spring中的IOC和AOP

  • Post author:
  • Post category:其他


1.概念:

IOC 是面向对象编程中的一种设计原则,IOC理论提出的观点大体是这样的:借助于“第三方”实现具有依赖关系的对象之间的解耦。

以前创建对象的主动权和创建时机是由自己把控的,而现在这种权力转移到第三方。就是由spring来负责控制对象的生命周期和对象间的关系。


控制反转:是指将创建对象的功能交给Spring容器,在我们需要使用对象的时候不需要自己创建,可以直接从容器中获取。

实现原理:

它是通过

反射机制+工厂模式

实现的,在实例化一个类时,它通过反射调用类中set方法将事先保存在HashMap中的类属性注入到类中。`

2.AOP(Aspect-OrientedProgramming,面向切面编程),它利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为“Aspect”,即切面。

简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。



AOP的核心思想就是“将应用程序中的业务逻辑同对其提供支持的通用服务进行分离。


性能监控,在方法调用前后记录调用时间,方法执行太长或超时报警。

缓存代理,缓存某方法的返回值,下次执行该方法时,直接从缓存里获取。

记录日志,在方法执行前后记录系统日志。

权限验证,方法执行前验证是否有权限执行当前方法,没有则抛出没有权限执行异常,由业务代码捕捉。



3.AOP能干什么,也是AOP带来的好处

1:降低模块的耦合度

2:使系统容易扩展

3:设计决定的迟绑定:使用AOP,设计师可以推迟为将来的需求作决定,因为它

可以把这种需求作为独立的方面很容易的实现。

4:更好的代码复用性



版权声明:本文为a534469632原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。