您的位置:首页 > 运维架构

AOP后置通知获取目标方法的参数以及配置详解

2017-10-20 09:51 573 查看
spring的加入的配置中如下:



代码中引入使用:



=================================

附部分xml配置代码:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd"> 
<!--tx:annotation-driven transaction-manager="transactionManager"/-->
<context:component-scan base-package="com.group com.group.filter com.qq.weixin.mp"
annotation-config="true">
<context:include-filter type="annotation" expression="org.aspectj.lang.annotation.Aspect"/>
</context:component-scan>

<aop:aspectj-autoproxy/>
<aop:config proxy-target-class="true"/>
<tx:annotation-driven transaction-manager="transactionManager" />

在代码中使用如下:

package com.group.filter;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.commons.collections.CollectionUtils;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

@Aspect
public class PromoteFilter {

private static final Logger logger = LoggerFactory.getLogger(PromoteFilter.class);

@Autowired
GeneralBeanDao beanDao;
@Autowired
PromoteService promoteService;

@Pointcut("execution(* com.group.controller.OrderController.comfirReceipt(..))")
private void privileged() {
}

@AfterReturning("privileged()")
public void access(JoinPoint sp) {

Object[] args = sp.getArgs();
Long id = (Long) args[0];
System.out.println("aop后置通知开始执行:===============================当前订单的Id是:"+ id);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐