Рубрики
Без рубрики

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

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

Автор оригинала: mkyong.

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

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

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

package com.mkyong.customer.bo;

public interface CustomerBo {

	void addCustomer();
	
	String addCustomerReturnValue();
	
	void addCustomerThrowException() throws Exception;
	
	void addCustomerAround(String name);
}

1. Аспект j = @До

Аспект @ Перед примером.

package com.mkyong.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.mkyong.customer.bo.CustomerBo.addCustomer(..))")
	public void logBefore(JoinPoint joinPoint) {
		//...
	}

}

Эквивалентная функциональность в XML, с .






  

     
     

     
			
  


2. Аспект j = @После

Аспект @ После примера.

package com.mkyong.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.mkyong.customer.bo.CustomerBo.addCustomer(..))")
	public void logAfter(JoinPoint joinPoint) {
		//...
	}

}

Эквивалентная функциональность в XML, с .






  

     
     

     
			
  


3. AspectJ после возвращения> = после возвращения> = @После возвращения

Аспект @Пример после возврата.

package com.mkyong.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.mkyong.customer.bo.CustomerBo.addCustomerReturnValue(..))",
   returning= "result")
   public void logAfterReturning(JoinPoint joinPoint, Object result) {
	//...
   }

}

Эквивалентная функциональность в XML, с возврата> . возврата>






  

    
    

    
			
  


4. Аспект j после броска> = после броска> = @После возвращения

Аспект @Пример после возврата.

package com.mkyong.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.mkyong.customer.bo.CustomerBo.addCustomerThrowException(..))",
   throwing= "error")
  public void logAfterThrowing(JoinPoint joinPoint, Throwable error) {
	//...
  }
}

Эквивалентная функциональность в XML, с после броска> . после броска>






  

    
    
			
    
			
  


5. AspectJ после обхода> = после обхода> = @Вокруг

Аспект j @Вокруг примера.

package com.mkyong.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.mkyong.customer.bo.CustomerBo.addCustomerAround(..))")
	public void logAround(ProceedingJoinPoint joinPoint) throws Throwable {
		//...
	}
	
}

Эквивалентная функциональность в XML, с обхода> . обхода>






   

    
   
			
   
			
  


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

См. Полный файл конфигурации на основе XML AspectJ.












  

    
    

    

    
    

    

    
    

    

    
    

    

    
    

    

  




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

Рекомендации

  1. Пример аннотации Spring AOP + AspectJ
  2. Руководство по программированию AspectJ
  3. Ссылка на Spring AOP + AspectJ

Оригинал: “https://mkyong.com/spring3/spring-aop-aspectj-in-xml-configuration-example/”