spring 2.0使用AOP实例(基于Annotation的配置方式)

使用Java5注解配置及使用Spring AOP
Spring2中的 AOP提供了使用AspectJ中定义的Java注解在Bean中配置切入点及通知的方法。这里演示演示这种使用方法,我们写一个包含使用了Java注解来标识切面相关信息的Bean,方法名称及内容跟上面AspectBean的完全一样,AspectAnnotationBean.java中的内容如下所示:
package springroad.demo.chap5.exampleB;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.After;
@Aspect
public class AspectAnnotationBean {
@Pointcut("execution(* springroad.demo.chap5.exampleB.Component.business*(..))")
public void somePointcut()
{
}
@Before("somePointcut()")
public void validateUser()
{
System.out.println("执行用户验证!");
}
@After("somePointcut()")
public void writeLogInfo()
{
System.out.println("书写日志信息");
}
@Before("somePointcut()")
public void beginTransaction()
{ 31
System.out.println("开始事务");
}
@After("somePointcut()")
public void endTransaction()
{
System.out.println("结束事务");
}
}
其中黑体部分的内容是相对于前面示例中AspectBean增加的。现在我们来修改Spring的配置文件,修改后aspect-spring.xml的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<aop:aspectj-autoproxy />
<bean id="aspectBean"
class="springroad.demo.chap5.exampleB.AspectAnnotationBean">
</bean>
<bean id="component"
class="springroad.demo.chap5.exampleB.ComponentImpl">
</bean>
</beans>
对比上一个配置文件,我们看到这个文件比前面一个简单多了,关于aop的配置只有一行,即<aop:aspectj-autoproxy/>。这时运行客户端示例代码,我们会发现,其输出的内容跟前面示例的内容完全一样(当然,这个例子要求你必须是在Jdk1.5及以上才能运行,因为java注解是Jdk1.5才引入的功能!)。

你可能感兴趣的:(annotation)