基于Xml Schema实现aop技术
1、简化代码实现
2、容易对应用程序进行维护
3、所有元素都定义在<aop:config>标签元素中
eg:
<bean id="apbean" class="aspecBean"></bean>
<bean id="he" class="hello"></bean>
<!-- 包含多个切面,切入点、advice等标签元素 -->
<aop:config>
<!-- 定义一个切面 -->
<aop:aspect id="ap" ref="apbean">
<!-- 定义切入点的信息
expression是执行表达式
*:代表匹配任意的返回类
():匹配了一个不接受任何参数的方法
(..):匹配了接受任何参数的方法(一个至多个)
-->
<aop:pointcut expression="execution(*.hello.*(..))" id="pc"/>
<!-- 用于匹配BeforeAdvice -->
<aop:before method="startLog" pointcut-ref="pc"/> //开启记录
<!-- 用于匹配AfterAdvice -->
<aop:after method="endLog" pointcut-ref="pc"/> //结束记录
</aop:aspect>
</aop:config>
基于Annotation
以注解的方式对java的普通类进行标注
@AspectJ采用jdk5.0的注解技术
eg:
@Aspect //声明切面
public class aspectBean{
@Pointcut("execution(* hello.*(..))")
public void log(){}
@Before(value="log()") //在切入点之前执行
public void startLog(){
System.out.println("开始记录!");
}
@After(value="log()") //在切入点之后执行
public void endLog(){
System.out.println("结束记录!");
}
}