Spring AOP AspectJ в примере конфигурации XML

Spring AOP + AspectJ в примере конфигурации XML

В этом руководстве мы покажем вам, как преобразовать последнийSpring AOP + AspectJ annotation в конфигурацию на основе XML.

Для тех, кто не любит аннотации или использует JDK 1.4, вы можете использовать AspectJ на основе XML.

Еще раз просмотрите последний интерфейс customerBo, используя несколько методов, позже вы узнаете, как перехватить его через AspectJ в XML-файле.

package com.example.customer.bo;

public interface CustomerBo {

    void addCustomer();

    String addCustomerReturnValue();

    void addCustomerThrowException() throws Exception;

    void addCustomerAround(String name);
}

1. AspectJ = @Before

AspectJ @ Перед примером.

package com.example.aspect;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;

@Aspect
public class LoggingAspect {

    @Before("execution(* com.example.customer.bo.CustomerBo.addCustomer(..))")
    public void logBefore(JoinPoint joinPoint) {
        //...
    }

}

Эквивалентная функциональность в XML с<aop:before>.






  

     
     

     

  

2. AspectJ = @After

AspectJ @ После примера.

package com.example.aspect;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.After;

@Aspect
public class LoggingAspect {

    @After("execution(* com.example.customer.bo.CustomerBo.addCustomer(..))")
    public void logAfter(JoinPoint joinPoint) {
        //...
    }

}

Эквивалентная функциональность в XML с<aop:after>.






  

     
     

     

  

3. AspectJ = @AfterReturning

AspectJ @AfterReturning пример.

package com.example.aspect;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.AfterReturning;

@Aspect
public class LoggingAspect {

  @AfterReturning(
   pointcut = "execution(* com.example.customer.bo.CustomerBo.addCustomerReturnValue(..))",
   returning= "result")
   public void logAfterReturning(JoinPoint joinPoint, Object result) {
    //...
   }

}

Эквивалентная функциональность в XML с<aop:after-returning>.






  

    
    

    

  

4. AspectJ = @AfterReturning

AspectJ @AfterReturning пример.

package com.example.aspect;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.AfterThrowing;

@Aspect
public class LoggingAspect {

  @AfterThrowing(
   pointcut = "execution(* com.example.customer.bo.CustomerBo.addCustomerThrowException(..))",
   throwing= "error")
  public void logAfterThrowing(JoinPoint joinPoint, Throwable error) {
    //...
  }
}

Эквивалентная функциональность в XML с<aop:after-throwing>.






  

    
    

    

  

5. AspectJ = @Around

AspectJ @ Вокруг примера.

package com.example.aspect;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Around;

@Aspect
public class LoggingAspect {

    @Around("execution(* com.example.customer.bo.CustomerBo.addCustomerAround(..))")
    public void logAround(ProceedingJoinPoint joinPoint) throws Throwable {
        //...
    }

}

Эквивалентная функциональность в XML с<aop:after-around>.






   

    
   

   

  

Полный пример XML

Смотрите полный файл конфигурации AspectJ XML.












  

    
    

    

    
    

    

    
    

    

    
    

    

    
    

    

  



Скачать исходный код

Скачать -Spring3-AOP-AspectJ-XML-Example.zip (8 КБ)