gistfile1.txt Spring可以看作一个容器控制反转:原本由程序员在代码各处New的对象,统一放在容器中管理,一加载容器就创建对象,程序员只需要根据配置环境获取到环境对象context,然后
Spring可以看作一个容器 控制反转:原本由程序员在代码各处New的对象,统一放在容器中管理,一加载容器就创建 对象,程序员只需要根据配置环境获取到环境对象context,然后从环境中取要用的对象就 可以了。 优点:对象进行了统一管理,加快了程序执行时的速度 代理设计模式:不再使用一个类的对象,反而使用这个类的代理类的对象,一些重复的东 西可以放在代理类中 AOP面向切面编程:把在类A的多个方法中的重复代码进行封装,把重复的代码切掉,放在 切面类中,通过配置,让类A的所有方法在执行之前或之后都执行切面类中的某段代码 -->1.AOP专业属于 -->1.Joinpoint 连接点 目标类类中的方法 -->2.Pointcut 切点 查找目标类方法条件 -->3.Advice 增强 在调用目标类方法之前或者之后所需要额外功能(代码) -->4.Target 目标对象 目标类 -->5.introduction 引介 强行让目标类实现接口 -->6.Weaving 织入 给目标类添加功能时的时机1.编译期 2.类转载期 3.运行期(内存版,动态代理) -->7.Proxy 代理 代理类,完成切入后的目标类(增强版的代理类) -->8.Aspect 切面 最终增强的代理方法15:34 2016/7/28 -->2.增强类型,org.aopalliance.aop.Advice -->前置增强:org.springframework.aop.BeforeAdvice,MethodBeforeAdvice -->1、编写一个切面类来实现该接口,重写里面的方法 -->2、通过配置文件来实现 切入点: 第一个*号表示任意返回类型 第一个*后面代表包的路径 第二个*代表包内的任意类 第三个*代表保内的任意方法 (..):代表方法中的任意参数 -->后置增强:org.springframework.aop.AfterReturning -->环绕增强:org.aopalliance.intercept.MethodInterceptor -->异常增强:org.springframework.aop.ThrowsAdvice -->必须手动 afterThrowing([Method method,Object[] args,Object target],Throwable e) -->引介增强:org.springframework.aop.IntroductionInterceptor -->在目标类添加方法和属性 -->3.0基于@AspectJ配置切面 -->@Before 前增强 -->@AfterReturning 后置增强 -->@Around 环绕增强 -->@AfterThrowing 异常增强 -->@After 抛出异常和正常退出增强 -->@DeclareParents 引介增强 -->使用规则 -->使用代码,创建AspectJProxyFactory,设置目标类和增强类 -->启用注解功能 -->配置目标类bean,配置增强类bean,配置org.springframework.aop.aspectj.annotation