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

本文演示如何在Java5注解下配置及使用SpringAOPSpring2中的AOP,通过示例代码展示如何在Bean中配置切入点及通知,重点介绍了AspectBean和AspectAnnotationBean的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用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才引入的功能!)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值