Spring的ioc和aop

什么是控制反转(IoC)?
IoC:Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。Ioc意味着将你设计好的对象交给容器控制,而不是new。
IoC 控制反转,指将对象的创建权,反转到Spring容器

什么是Spring IoC容器?
IOC容器就是具有依赖注入功能的容器,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。应用程序无需直接在代码中new相关的对象,应用程序由IOC容器进行组装。在Spring中BeanFactory是IOC容器的实际代表者。

IoC的优点是什么?
1.减少代码的耦合,可以使应用更加模块化
2.增加代码的复用率
3.资源更加统一管理
4.维护代码更加方便,一般只需要修改一下配置文件就ok了。
5.提升了程序的测试性

什么是依赖注入(DI)?
DI:Dependency Injection 依赖注入,在Spring框架创建Bean对象时,动态的将依赖对象注入到Bean组件

DI是怎么实现的?
1.实例化Bean对象:服务器启动时,初始化spring容器,创建由XML配置或添加了相应注解的类的实例,并将实例保存到Spring容器中;
2.完成ID操作:通过XML描述或对应注解,完成对象之间的依赖关系,此过程称为依赖注入,spring支持3种注入实现:
①注解注入:通过注解显示注入。常用注解@Resource。
②XML注入:通过xml显示注入。
③自动注入:隐式进行bean搜索并自动装配
IoC和DI的关系:
IoC 控制反转,指将对象的创建权,反转到Spring容器 ,
DI 依赖注入,指Spring创建对象的过程中,将对象依赖属性通过配置进行注入
DI依赖注入不能单独存在,必须在IoC控制反转的基础上才能完成。

什么是AOP?
AOP (Aspect Oriented Programing) 称为:面向切面编程,它是一种编程思想。在程序运行的时候,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。

基于代理思想,对原来目标对象,创建代理对象,在不修改原对象代码情况下,对原有业务方法进行增强 !
AOP和代理模式:
代理模式:分为静态代理、JDK动态代理、cglib代理
1.静态代理
代理类和被代理类实现共同的接口(或继承),代理类中存有指向被代理类的引用,实际执行时通过调用代理类的方法、实际执行的是被代理类的方法。
2.jdk动态代理:必须有接口和实现类(目标类),通过工具类Proxy生产接口对应的代理类,从而对目标类进行增强。
3.Cglib代理:Cglib代理生成的代理类是目标类的子类,所以目标类不能使用final修饰。
AOP
Spring AOP通过代理的方式,对目标类进行增强。
Spring aop底层默认使用JDK动态代理,通过配置可以修改成cglib代理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值