1. 程式人生 > >AOP後置通知獲取目標方法的引數以及配置詳解

AOP後置通知獲取目標方法的引數以及配置詳解

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);



相關推薦

AOP通知獲取目標方法引數以及配置

spring的加入的配置中如下: 程式碼中引入使用: ================================= 附部分xml配置程式碼: <?xml version="1.0"

SpringAOP--使用通知獲取目標方法引數

獲取目標方法的資訊    訪問目標方法最簡單的做法是定義增強處理方法時,將第一個引數定義為JoinPoint型別,當該增強處理方法被呼叫時,該JoinPoint引數就代表了織入增強處理的連線點。JoinPoint裡包含了如下幾個常用的方法:Object[] getArgs:返

Spring:使用Spring AOP時,如何獲取目標方法上的註解

cati 相關操作 config 使用 ide bject poi 註解 except 當使用spring AOP時,判斷目標方法上的註解進行相關操作,如緩存,認證權限等 自定義註解 package com.agent.annotation; import ja

AOP通知

package com.gqc.aop02; <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http

hbase的讀寫機制,及flush引數配置

1,HBase的的讀寫流程圖,是一個二次定址的過程第一次直接到動物園管理員中找到元的元資料資訊,即元對應的儲存其他所有使用者表的RegionServer的的位置,示意圖中所給出的為regionserver1,然後第二次直接到regionserver1中的meta.region

centos7核心引數優化配置

#關閉ipv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 避免放大攻擊 net.ipv4.icmp_echo_ignore_broadcasts = 1 開啟惡意

MySQL 5.6下table_open_cache引數合理配置

table_open_cache指定表快取記憶體的大小。每當MySQL訪問一個表時,如果在表緩衝區中還有空間,該表就被開啟並放入其

Spring AOP——在通知(Advice)方法獲取目標方法引數

獲取目標方法的資訊     訪問目標方法最簡單的做法是定義增強處理方法時,將第一個引數定義為JoinPoint型別,當該增強處理方法被呼叫時,該JoinPoint引數就代表了織入增強處理的連線點。JoinPoint裡包含了如下幾個常用的方法: Object[] getAr

Spring中的AOP(五)——在Advice方法獲取目標方法引數

獲取目標方法的資訊     訪問目標方法最簡單的做法是定義增強處理方法時,將第一個引數定義為JoinPoint型別,當該增強處理方法被呼叫時,該JoinPoint引數就代表了織入增強處理的連線點。JoinPoint裡包含了如下幾個常用的方法: Object[] getArgs:返回目標方法的引數 Sig

Spring Aop 修改目標方法引數和返回值

首先使用spring-aop需要在spring的配置檔案中假如 一、新建註解 @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented

Spring 學習(十六)——Spring AOP之前置通知通知

spring aop 1)加入jar包 com.springsource.net.sf.cglib-2.2.0.jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.aspectj.weaver-1.6.8.R

Spring AOP中的前置通知通知

不同版本的spring對AOP的支援有所不同,spring2.0之前,它主要針對不同型別的攔截器使用XML配置檔案通過代理來實現。而spring2.0之後,它可以使用JDK5的註解來完成AOP的實現,

Spring入門學習(AOP前置通知通知) 第十五節

Spring入門學習(AOP前置通知) AOP前置通知 後置通知 AOP前置通知 前置通知:在方法之前執行的通知,使用`@Before`註解並將切入點表示式的值作為註解值。 使用Maven新增依賴的jar包:<!--

Spring AOP前置通知通知

在Spring中啟用AspectJ註解支援   要在Spring應用中使用AspectJ註解,必須在classpath下包含AspectJ類庫:aopalliance.jar、aspectj.weaver.jar和spring-aspects.jar   將aop Schema新增到<beans>

Spring aop 前置通知通知、返回通知、 異常通知通知

  Spring AOP定義切面 Ⅰ 首先介紹一下寫Spring Aop思路  一、首先在專案中加入aop所需要的jar aopalliance-1.0.jar aspectjweaver-1.6.11.jar commons-logging-1.1.1.jar sprin

Spring AOP-通知-為目標方法織入多個切面

AOP-通知-為目標方法織入多個切面 開發中可能會遇到為目標方法織入多個切面,比如前置。後置通知都需要 介面 package com.hk.spring.aop06; public interface SomeService { publi

AOP基礎:繼承接口方式實現:前置通知通知、異常通知、環繞通知 (demo)

widget pointcut 1.0 add contex 分享圖片 lns stat ado 運行環境:     ide: Spring Tool Suite 3 Version: 3.9.8.RELEASE     jdk:   1.8     系統:  

spring學習 十 schema-based 前置通知

point utf-8 後置 實現接口 測試 運行 jar 需要 圖片 spring 提供了 2 種 AOP 實現方式:(1)Schema-based ,(2)AspectJ Schema-based:每個通知都需要實現接口或類,配置 spring 配置文件時在<a

spring_(17)Spring_通知與前置通知

後置通知 後置通知是在連線點完成之後執行的,即連線點返回結果或者丟擲異常的時候,下面的後置通知記錄了方法的終止。 一個切面可以包括一個或者多個通知 例子程式 基本結構 ArithmeticCalculator.java package com.s

第七講:7.2 spring AOP-環繞

一,後置 1,studentServiceAspect類新增doAfter方法,public void doAfter(JoinPoint jp){        System.out.println("類名:"+jp.getTarget().getClass().getNa