spring2.0 配置AOP(切面)

来源:互联网 发布:如何注册淘宝小号安全 编辑:程序博客网 时间:2024/06/03 00:25

第一,修改Spring的配置文件applicationContext.xml

<?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: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-2.0.xsd 

  http://www.springframework.org/schema/tx 

  http://www.springframework.org/schema/tx/spring-tx-2.0.xsd 

http://www.springframework.org/schema/aop 

  http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">

第二,添加AOP定义

<!-- ***************************AOP的定义begin***********************************-->

<!-- 自定义Aspect -->

<bean id="logBeforeAdvice" class="com.accp.util.MyLogger" />

<aop:config>

<aop:aspect id="logging" ref="logBeforeAdvice"><!-- 前置 -->

<aop:before method="before"

pointcut="execution(* com.accp.service.*.*(..))" />

<aop:after-returning method="afterReturning"

pointcut="execution(* com.accp.service.*.*(..))" /><!-- 置 -->

<aop:after-throwing pointcut="execution(* com.accp.service.*.*(..))"

throwing="throwable" method="afterThrowing" />

</aop:aspect>

</aop:config>

<!--***************************AOP的定义end***********************************-->

第三,使用代码

package com.accp.util;

import java.util.logging.Level;

import java.util.logging.Logger;

import java.lang.reflect.Method;

import org.aspectj.lang.JoinPoint;

import org.springframework.aop.MethodBeforeAdvice;

public class MyLogger {

private Logger logger = Logger.getLogger(this.getClass().getName());

public void before(JoinPoint jointPoint) throws Throwable {

// System.out.println("--------------begin-------------");

logger.log(Level.INFO"<<<<<method starts..."

+ jointPoint.getSignature().getDeclaringTypeName() + "."

+ jointPoint.getSignature().getName() + ">>>>>>");

}

public void afterReturning(JoinPoint jointPoint) {

// System.out.println("-------------end-----------------");

logger.log(Level.INFO"<<<<<method ends..."

+ jointPoint.getSignature().getDeclaringTypeName() + "."

+ jointPoint.getSignature().getName() + ">>>>>>");

}

}

原创粉丝点击