Spring Ioc 与 Aop

IOC :控制反转,是一种思想,把对象创建的权利交给了容器来进行管理。

         初始化过程:(1)构建BeanFactory

                                   (2)BeanDefinition的Resource定位,载入解析与注册

                                    (3)创建Bean实例对象

sping有三个核心组件:Core ,Context,Bean

想一想你写的项目,写好了xml文件,Core 核心组件就对xml文件中的bean进行加载,解析与注册,在Spring内部就被转化为BeanDefinition对象。Context组件利用BeanFactory创建bean对象(工厂模式)。

DI(依赖注入):动态的向某个对象提供它所需要的其他对象(通过反射实现的)

依赖注入的三种方式:1:构造器注入

                                        2:接口注入

                                        3:setter注入

AOP:面向切面编程  

两种实现方式 :jdk动态代理

                             cglib动态代理

1:jdk动态代理   

在jdk.lang.reflect包下有一个Proxy类,它是动态代理的入口。newProxyInstance就是创建代理对象的方法

public static Object newProxyInstance(ClassLoader loader,Class<?> interfacers,InvocationHandler h )

三个参数 :ClassLoader 用于加载代理类的Loader类,和被代理的类是同一个Loader类,Interfaces是被代理类实现的接口(使用jdk动态代理必须要实现接口), invocationHandler 用于执行除了被代理类接口方法之外用户定义的其他操作。 

2:cglib :cglib继承被代理的类(被代理的类不能是final类型,因为final类不能被继承),重写方法,织入通知,动态生成字节码并运行

实现MethodInterceptor接口,并且重写该接口

public Object intercept(Object proxy, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值