IOC和AOP

IOC:控制反转,是一种设计模式。一层含义是控制权的转移:由传统的在程序中控制依赖转移到由容器来控制;第二层是依赖注入:将相互依赖的对象分离,在spring配置文件中描述他们的依赖关系。他们的依赖关系只在使用的时候才建立。简单来说就是不需要NEW一个对象了。

AOP:面向切面,是一种编程思想,OOP的延续。将系统中非核心的业务提取出来,进行单独处理。比如事务、日志和安全等。这个简单来说就是可以在一段程序之前或者之后做一些事。

Spring 的AOP和IOC都是为了解决系统代码耦合度过高的问题。使代码重用度高、易于维护。
不过AOP和IOC并不是spring中特有的,只是spring把他们应用的更灵活方便
 
 
代理就是帮助去做一件事  生活中你应该听过代理人 吧, 和Java中的代理含义是一样的。
 
比方说 你要记录日志, 在常规开发中,日志的记录 不属于业务的一部分。 但是我们又希望记录业务日志   第一个我们想到的就是 在业务层写日志,理论上是没问题的,实际也没问题。但是却产生了麻烦
如果后期维护的时候,别人看代码的时候就会找不到那句是业务,那句是日志,造成维护麻烦。这只是其中一点   而Java有2个很重要的特性, 各司其职和独立性 ,这就要求了  日志 和业务,应该分别处理,而不应该混淆在一起。 于是就有人提出了代理的概念, 代替业务操作类去在操作的业务的时候去记录日志 。
追问
这么说,代理是用AOP的思想实现的了?我记得看AOP的博客时有举记录日志这个例子。
回答
AOP是切面编程, 而切面编程用到的基础就是动态代理,或者CGLB 代理或者其他代理模式!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值