使用注解的方式实现AOP

发表时间:2017-07-11 17:09:52 浏览量( 49 ) 留言数( 0 )

学习目标:

1、了解Java的历史

2、为什么要学习Java语言

3、端正学习态度


学习过程:


使用配置文件的方式事实上已经不提倡了,最简单的方式还是使用注解实现AOP,这样不仅简介,容易理解。先使用通知,这里我们使用注解的方式:

   /**
 * 使用注解方式的通知
 * @author Administrator
 *
 */
@Aspect
public class AspectAdvice {
	
	@Before("execution (* com.biz.LoginBiz.log*(..))&&args(user,..)")
	public void before(String user){
		System.out.println(user+"登陆的前置通知");
	}
	
	@After(" execution (* com.biz.LoginBiz.log*(..))")
	public void after(){
		System.out.println("登陆后置通知");
	}
	
	@AfterThrowing(" execution (* com.biz.LoginBiz.log*(..))")
	public void throwing(){
		System.out.println("异常通知");
	}
	
	@Around(" execution (* com.biz.LoginBiz.log*(..))")
	public Object aroud(ProceedingJoinPoint point) throws Throwable{
		
		System.out.println("环绕通知--前置");
		Object object = null;
		try {
			object = point.proceed();// 执行核心方法
		} catch (Exception e) {
			System.out.println("环绕通知--异常");
		}
		System.out.println("环绕通知--后置");

		return object;
		
	}

}

spring的配置文件的命名空间需要添加支持aop的Aspect标签。并启动自动代理

   <?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:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans  
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd  
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">


<!-- 使用注解的方式的自动代理 -->
	<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
	
<beans>

这样就可以了。是不是很简单。