一.什么是AOP aspect-oriented  programming,面向切面编程,对oop的一种补充. 著名示例,aspectj,spring+aspectj 二.aop之代码重构 2.1.代理重构 示例代码 public interface Greeting { void sayHello(String name); } 实现 public class GreetingImpl implements Greeting { @Override public void sayHello(S…
2.3.spring+aspectj Spring在集成了aspectj后,同时也保留了以上的切面与代理的配置方式. 将Spring与aspectj集成与直接使用aspectj不同,不需要定义Aspectj类(它扩展了Java语法的一种新语言,还需要特定的编译器),只需要使用Aspectj切点表达式即可. 1.Spring + Aspectj(基于注解:通过Aspectj execution表达式拦截方法) 增加GreetingAspect类 其中包含了环绕增强 该类中的@Aspect注解,表明…
1.概要 aop:面向方面编程.不改变源代码,还为类增加新的功能.(代理) 切面:实现的交叉功能. 通知:切面的实际实现(通知要做什么,怎么做). 连接点:应用程序执行过程期间,可以插入切面的地点. 切入点:真正的将通知应用到目标程序中的地点,一定是连接点.切入点是连接点的子集. 切入点决定了一个特定的类的特定方法是否满足一定的规则 引入:为类增加新的属性和方法. (引入通知) 目标对象:被通知的对象. 代理:把通知应用到目标对象以后,产生新的对象,该对象就称为代理对象. 织入:创建代理对象过程…
1.spring 不会自动去寻找注解,必须告诉 spring 哪些包下的类中可能有注解;使用注解来取代配置文件.1.1 引入xmlns:context ,指定扫描范围 <context:component-scan base-package="com.advice,com.test"></context:component-scan> 1.3 @Component 1.4 相当于<bean/> 1.5 如果没有参数,把类名首字母变小写,相当于<…
本节主要内容: 一.Spring 通过XML配置文件形式来AOP 来实现前置,环绕,异常通知     1. Spring AOP  前置通知 XML配置使用案例     2. Spring AOP  环绕通知 XML配置使用案例     3. Spring AOP  抛出异常后通知 XML配置使用案例     4. Spring AOP  返回后通知 XML配置使用案例     5. Spring AOP  后通知  XML配置使用案例 二.Spring 通过注解形式来AOP 来实现前置,环绕,…
通知类型: 步骤: 1. 定义接口 2. 编写对象(被代理对象=目标对象) 3. 编写通知(前置通知目标方法调用前调用) 4. 在beans.xml文件配置 4.1 配置 被代理对象=目标对象 4.2 配置通知 4.3 配置代理对象 是 ProxyFactoryBean的对象实例 4.3.1 <!-- 代理接口集 --> 4.3.2 织入通知 4.3.3 配置被代理对象 本实例: 1.基本信息: 包名:com.aop 两个接口类:TestServiceInter.java:TestServic…
1.概念:Aspect Oriented Programming 面向切面编程 在方法的前后添加方法   2.作用:本质上来说是一种简化代码的方式      继承机制      封装方法      动态代理      --      3.情景举例 ①数学计算器接口[MathCalculator]           int add(int i,int j);           int sub(int i,int j);           int mul(int i, int j);     …
1.简介 从本篇文章开始,我将会对 Spring AOP 部分的源码进行分析.本文是 Spring AOP 源码分析系列文章的第二篇,本文主要分析 Spring AOP 是如何为目标 bean 筛选出合适的通知器(Advisor).在上一篇AOP 源码分析导读一文中,我简单介绍了 AOP 中的一些术语及其对应的源码,部分术语和源码将会在本篇文章中出现.如果大家不熟悉这些术语和源码,不妨去看看. 关于 Spring AOP,我个人在日常开发中用过一些,也参照过 tiny-spring 过写过一个玩…
实现两个整数的加减乘除,在每个方法执行前后打印日志. ArithmeticCalculator.java: package spring.aop.impl.xml; public interface ArithmeticCalculator { int add(int i,int j); int sub(int i,int j); int mul(int i,int j); int div(int i,int j); } ArithmeticCalculatorImpl.java: packag…
大致内容 spring的bean管理(注解实现) AOP原理 log4j介绍 spring整合web项目的演示 一.spring注解实现bean管理 注解: 代码中一些特殊的标记,使用注解也可以完成一些相关的功能(写法"@") 方法上.类上(详见基础加强) 使用注解创建对象,注入属性(完成day01相似的功能) 可以使用注解,但不可能完全替代xml配置文件 [更新] 还真难说,有可能全注解无配置开发 准备工作: 导入包:除了day01的6个核心jar包(当然包括日志的包) 再加上aop…