
Spring AOP注解配置详解
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
本文章详细介绍了Spring框架中的AOP(面向切面编程)及其注解配置方法,帮助开发者轻松理解和应用AOP技术。
SpringAOP中的注解配置详解是了解Spring框架的重要内容之一,它允许开发人员在无需改动原有代码的情况下实现对业务逻辑的拦截与扩展功能。
一、使用注解来实施Spring AOP
利用注解形式进行编程可以大大简化Spring AOP的设定过程。通过这种方式,我们可以将Advice(或称切面)无缝地织入到目标对象中,并借此达成特定的功能需求如监控或者日志记录等任务的自动化处理。
例如,在以下实例代码里,我们采用@Aspect 注解来创建一个名为AnnotationHandler 的切面类:
```java
@Aspect
public class AnnotationHandler {
...
}
```
紧接着定义切入点的方法如下所示:
```java
@Pointcut(execution(public * com.briup.aop.service..*.*(..)))
public void myPointCut() {
...
}
```
这里,myPointCut 是该 @Pointcut 注解的名称。值得注意的是,此方法本身无需执行任何具体操作;其主要目的在于为注解提供一个可以书写的位置。
二、各种类型的Advice
Spring AOP支持多种类型的通知(即Advice),每种通知都有特定的功能和应用场景。接下来我们将详细介绍这些不同类型的通知:
* @Before 注解:在切入点上的目标方法被调用之前执行;
```java
@Before(myPointCut())
public void beforeTest(JoinPoint p) {
System.out.println(p.getSignature().getName() + before...);
}
```
* @After注解:在切入点的目标方法之后执行:
```java
@After(myPointCut())
public void afterTest(JoinPoint p) {
System.out.println(p.getSignature().getName() + after...);
}
```
* @AfterReturning 注解:当目标方法正常结束时触发;
```java
@AfterReturning(myPointCut())
public void afterReturningTest(JoinPoint p) {
System.out.println(p.getSignature().getName() + after returning);
}
```
* @Around注解:在切入点的目标方法前后执行环绕通知,可以控制何时调用目标方法:
```java
@Around(myPointCut())
public Object aroundTest(ProceedingJoinPoint pjp) throws Throwable {
System.out.println(pjp.getSignature().getName() + is start..);
Object obj = pjp.proceed();
System.out.println(pjp.getSignature().getName() + is end..);
return obj;
}
```
* @AfterThrowing 注解:当目标方法抛出异常时执行;
```java
@AfterThrowing(value=myPointCut(), throwing=ex)
public void throwingTest(JoinPoint p, Exception ex) {
System.out.println(p.getSignature().getName() + is throwing... + ex.getMessage());
}
```
三、XML配置
除了使用注解外,Spring AOP同样支持通过XML文件来进行切面的定义。以下是一个简单的示例:
```xml
全部评论 (0)


