简单理解Java Spring的IOC与AOP

IOC是指控制反转:

新手理解方式可以理解为在我们java开发过程中原本创建对象是由我们自己控制的,我们直接在调用者A当中写new被调用者B的代码方式来创建对象,这种方式增加了AB两者之间的耦合度,但是使用Spring框架的话,我们new对象B的工作交给了Spring容器,A要创建B的实例对象需要B,也就是依赖于B,由Spring容器将B对象赋给A,相当于为A注入B的实例对象,这就是依赖注入,由以前的我们自己控制设计好的类转为Spring容器控制我们的设计的类,这就是控制反转。

AOP是指切面编程:

举个例子,每个水桶一个类,有多个水桶A,B,C,所有水桶用一根水管去洒水,如果撒水中途每个水桶都要加一点额外的相同的特制药水,这时我们需要拿下所有水桶往水桶里注入要加的药水再重新接上水管,也就是修改所有水桶类A,B,C的代码,很麻烦,不仅工程复杂而且因为重复多次容易出错,而现在,我们将水管中间切开,加一个注射口,然后每次中途要加额外药水时,我们将要加的药水用注射器从水管注射口直接注射进去,这个操作就是在流程中切一刀,制造切点,将所有重复的操作写入一个AOP类,即装入注射器,然后将药水直接注入水管,这时我们如果要加任何相同药水也就是重复操作只需修改AOP类即可,或者水需要某些过滤操作时,我们不用所有桶都加一个过滤器也就是每个水桶类都去写一个过滤方法,我们可以在水管中间切一刀装一个过滤器,也就是在AOP类中添加过滤操作,即省去了过多的重复操作,又避免了对所有水桶类进行修改,减少了代码出错的几率,可以对某一功能进行统一处理,又符合“对新增开放,对修改关闭的编程原则”,这就是切面编程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值