Spring的AOP与IOC

AOP:
第一:由于java是面向对象编程,不同的类设计不同的方法,基于封装,优点很明显,类可重用。
第二:这样做有一个弊端,代码重复性。比如类a,b都需要做日志,假设日志相同,但是因为面向对象的设计让类之间无法联系,这些代码就不能统一起来。当然也不能把这些单独提出去,作为类的方法被调用,那么就有了依赖性降低系统的稳定性。
第三 : 需要一个方法,在我们需要的时候随意加入代码(切面)  
aop就是做这个事情的
aop是通过代理机制实现的
这种程序运行时将代码切入到指定位置的思想就是面向切片编程
这样看来,AOP其实只是OOP的补充而已。OOP从横向上区分出一个个的类来,而AOP则从纵向上向对象中加入特定的代码。有了AOP,OOP变得立体了。如果加上时间维度,AOP使OOP由原来的二维变为三维了,由平面变成立体了。从技术上来说,AOP基本上是通过代理机制实现的。
IOC:
  程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言
  java虽然不是动态语言却有着一个非常突出的动态相关机制:Reflection。(反射)
用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造,并生成其对象实体.
这种“看透class”的能力被称为introspection。
所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系
对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转
spring就是通过反射来实现注入的 动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制
IOC详解
http://blog.csdn.net/it_man/article/details/4402245
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值