IOC & AOP


前言

关于Spring IOC和AOP相关问题 回答思路:

Step-1.使用通俗易懂的话解释下何为IOC和AOP
Step-2.各自的实现原理
Step-3.自己的项目中如何使用


一、IOC(Inverse of Control):

概念

IOC(Inverse of Control):控制反转,也可以称为依赖倒置。
许多应用都是通过彼此间的相互合作来实现业务逻辑的,如类A要调用类B的方法,以前我们是在类A中,通过自身new一个类B,然后在调用类B的方法,现在把new类B的事情交给Spring来做,在调用的时候,容器会为我们实例化。

容器初始化过程

IStep1.资源定位,即定义bean的xml
IStep2.载入
IStep3.IOC容器注册,注册beanDeidinition

注入方式(三种)

1.构造方法注入
2.setter注入
3.基于注解的注入(常用方式)

bean的创建方式

工厂模式

数据的注入方式

反射

二、AOP(Aspect Oriented Programming)

概念

面向切面编程,在我们的应用中,经常需要做一些事情,但是这些事情与核心业务无关,比如,要记录所有update*方法的执行时间时间,操作人等等信息,记录到日志

实现原理

代理模式为另一个对象提供一个替身或占位符以控制对这个对象的访问;

用最简单的方式来解释代理模式,那就是房屋中介,客户需要直接去找房东,而是直接访问这个“中介”,有中介代理完成房东的事物。

代理模式的好处是,不仅可以执行被代理对象的所有功能,还可以额外的添加功能,比如房屋中介不仅可以给你租房子,还可以为你其他的房屋信息

实现方式

1.实现APO的接口,重写前置和后置方法
2.自定义来实现AOP[主要是切面定义]
3.使用注解来实现

在Spring中的作用

提供声明式事务;允许用户自定义切面

代码如下(示例):

总结

IOC(Inverse of Control):控制反转也叫依赖注入,IOC利用java反射机制,AOP利用代理模式。
IOC所谓控制反转是指,本来被调用者的实例是有调用者来创建的,这样的缺点是耦合性太强,IOC则是统一交给spring来管理创建,将对象交给容器管理,你只需要在spring配置文件总配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spring会把你在配置文件中配置的bean都初始化好,然后在你需要调用的时候,就把它已经初始化好的那些bean分配给你需要调用这些bean的类

AOP(Aspect-Oriented Programming):面向切面编程。
AOP可以说是对OOP的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码,属于静态代理

不负韶华,只能朝夕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值