• spring: 使用Aspectj代理EnabelAspectjAutoProxy


    使用JavaConfig的话,可以在配置类的类级别上通过使用EnableAspectJ-AutoProxy注解启用自动代理功能。

    package ch2.test;
    
    import org.aspectj.lang.annotation.AfterReturning;
    import org.aspectj.lang.annotation.AfterThrowing;
    import org.aspectj.lang.annotation.Aspect;
    import org.aspectj.lang.annotation.Before;
    import org.aspectj.lang.annotation.Pointcut;
    
    @Aspect
    public class Audience {
    
    	
    	//定义命名的切点
    	@Pointcut("execution(** ch2.test.Performance.perform(..))")
    	public void Performance(){}
    	
    	//表演开始之前:关闭手机
    	@Before("Performance()")
    	public void silenCellPhones()
    	{
    		System.out.println("silen cell phones");
    	}
    	
    	//表演开始之前:入座
    	@Before("Performance()")
    	public void takingSeats()
    	{
    		System.out.println("take seats");
    	}
    	
    	//表演开始之后:鼓掌
    	@AfterReturning("Performance()")
    	public void applause()
    	{
    		System.out.println("clap clap clap");
    	}
    	
    	//表演结束之后:表演失败退票
    	@AfterThrowing("Performance()")
    	public void demandRefund()
    	{
    		System.out.println("demand refund");
    	}
    	
    }
    

      

    config

    package ch2.test;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.EnableAspectJAutoProxy;
    
    @Configuration
    @ComponentScan
    //声明自动代理: 开启自动代理
    @EnableAspectJAutoProxy
    public class ConcertConfig {
    
    	@Bean
    	public Audience audience()
    	{
    		return new Audience();
    	}
    }
    

      

  • 相关阅读:
    使用Putty和Xshell远程登录之密钥认证
    保护SSH的三把锁
    C++11_shared_ptr
    C++11_ tuple
    C++11_ 右值引用
    C++11_ Variadic Templates
    C++11_ Lambda
    C++11_新语法
    MoreEffectiveC++Item35 条款27: 要求或禁止对象产生于heap中
    MoreEffectiveC++Item35 条款26: 限制某个class所能产生的对象个数
  • 原文地址:https://www.cnblogs.com/achengmu/p/8315778.html
Copyright © 2020-2023  润新知