Spring的AOP、IOC、DI

  1. spring的IOC和AOP

AOP:
作用:给容器中的组件做增强
编程中,对象与对象之间,方法与方法之间,模块与模块之间都是一个个切面。
对某些方法要做参数校验、或者验证是否登录。(这些一般写在Interceptor中,Interceptor是基于aop技术的)
在往常OOP中,有多少个接口就要对多个个接口copy多少次,它导致了大量代码的重复,而不利于各个模块的重用。
而在AOP中,就相当于提出一个公共方法,每个接口都来调用它。

之前做增强是通过oop(面向对象)编程,继承父类(静态代理)或传入委托类对象(动态代理)。

aop是给容器中的组件批量生成代理对象,把要增强的方法放到一起,这个范围称为切面。aop是一个范围更广的增强。

我们知道aop是spring的一个重要特性,他的重要提醒是切面增强,可以在一个方法执行前和执行后增加一些额外的功能,比如执行前进行权限验证,执行后进行方法执行时间统计等。当然可以在一个方法上添加多个拦截,这时候我们可以把拦截器存放在一个list中,在方法执行前,依次执行拦截器的前置增强-执行方法-后置增强。
对具体方法增强时,静态代理无法实现通用性,所以需要需要用到动态代理技术,也就是通过java的反射获得具体的执行方法,在反射调用方法执行前和执行后添加一些逻辑,可以参考网上的其他教程。这里主要介绍添加多个拦截器的spring实现。

IOC用于实例化类对象,管理类对象
IOC:Inverse of Controll 控制反转
控制:实例的生成权
反转:由应用程序反转给spring
容器:容器是放置实例对象的地方 → Spring容器、IOC容器

原先实例我们想用的时候自己new出来(主动的过程);到了Spring阶段,把实例的生成权交给了Spring容器,由Spring容器进行生成并管理,当我们想用的时候就从容器中取出来。

DI:Dependency Injection 依赖注入
依赖:
谁依赖谁? 应用程序依赖Spring容器
为什么依赖? Spring容器包含了应用程序必须的内容
注入:
谁注入谁? Spring容器注入给应用程序
注入了什么?应用程序运行所必须的资源


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-玫瑰少年-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值