1. 程式人生 > >Spring AOP Maven依賴,攔截加註解的方法引數

Spring AOP Maven依賴,攔截加註解的方法引數

<!-- Spring AOP + AspectJ by shipengzhi -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>3.0.6.RELEASE</version>
        </dependency>
        <dependency
> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>3.0.6.RELEASE</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <
artifactId>aspectjrt</artifactId> <version>1.6.11</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.6.11</version
> </dependency> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>2.1_3</version> </dependency> <!-- end -->
@Standardized(type = StandardizedData.CLIPON)
public class Main{...}

@Before("execution (* org.xx.xx.xx..*.*(@org.xx.xx.xx.xx.xx.Standardized (*),..))")
public void standardize(JoinPoint jp) throws Throwable {
    Object[] args = jp.getArgs();
    MethodSignature ms = (MethodSignature) jp.getSignature();
    Method m = ms.getMethod();

    Annotation[][] parameterAnnotations = m.getParameterAnnotations();

    for (int i = 0; i < parameterAnnotations.length; i++) {
        Annotation[] annotations = parameterAnnotations[i];
        System.out.println("I am checking parameter: " + args[i]);
        for (Annotation annotation : annotations) {
            System.out.println(annotation);

            if (annotation.annotationType() == Standardized.class) {
                System.out.println("we have a Standardized Parameter with type = "
                        + ((Standardized) annotation).type());
            }
        }
    }
}

相關推薦

Spring AOP Maven依賴攔截註解方法引數

<!-- Spring AOP + AspectJ by shipengzhi --> <dependency> <groupId>org.springframework</groupId&g

模仿spring-aop的功能利用註解搭建自己的框架。

屬性 def name rac java8 out fault 一個 lte 入JAVA坑7月有余,也嘗試自己手動搭建框架,最近對spring aop的這種切面很著迷,為此記錄下自己目前搭出來的小小的demo,後續有時間也會繼續改進自己的demo。望大神們不吝賜教。   主

spring boot整合swagger自定義註解攔截xss過濾非同步呼叫定時任務案例

本文介紹spring boot整合swagger,自定義註解,攔截器,xss過濾,非同步呼叫,定時任務案例 整合swagger--對於做前後端分離的專案,後端只需要提供介面訪問,swagger提供了介面呼叫測試和各種註釋的視覺化web介面。配置swagger的掃描包路徑,api資訊等,見配置類Swagger

elasticSearch+spring 整合 maven依賴詳解

elastics tail -s clas 1.0 too group nbsp snapshot 摘自:http://www.mayou18.com/detail/nTxPQSyu.html 【Elasticsearch基礎】elasticSearch+spring 整合

java中代理靜態代理動態代理以及spring aop代理方式實現原理統一彙總 SpringAOP的兩種代理方式(Java動態代理和CGLIB代理)

若代理類在程式執行前就已經存在,那麼這種代理方式被成為 靜態代理 ,這種情況下的代理類通常都是我們在Java程式碼中定義的。 通常情況下, 靜態代理中的代理類和委託類會實現同一介面或是派生自相同的父類。 一、概述1. 什麼是代理我們大家都知道微商代理,簡單地說就是代替廠家賣商品,廠家“委託”代理為

Spring裡的aop實現方式和原始碼分析 java中代理靜態代理動態代理以及spring aop代理方式實現原理統一彙總

使用"橫切"技術,AOP把軟體系統分為兩個部分:核心關注點和橫切關注點。業務處理的主要流程是核心關注點,與之關係不大的部分是橫切關注點。橫切關注點的一個特點是,他們經常發生在核心關注點的多處,而各處基本相似,比如許可權認證、日誌、事務。AOP的作用在於分離系統中的各種關注點,將核心關注點和橫切關注點分離開來。

轉載大牛所寫內容MAC 訊息驗證編碼的使用和相關概念非我所寫我只是備忘檢視註解一些紅色字型內容

  資訊保安基礎知識 MAC訊息驗證碼及金鑰管理問題   版權宣告:本文為博主原創文章,未經博主允許不得轉載。 原文地址https://blog.csdn.net/a359680405/article/details/41518685   &n

Mybatis(四):MyBatis核心元件介紹原理解析和原始碼解讀 java中代理靜態代理動態代理以及spring aop代理方式實現原理統一彙總

Mybatis核心成員 Configuration        MyBatis所有的配置資訊都儲存在Configuration物件之中,配置檔案中的大部分配置都會儲存到該類中 SqlSession         &

Spring AOP切面優先順序(XML和註解

【Spring4.0筆記整理十四】AOP切面優先順序(XML和註解) - CSDN部落格 https://blog.csdn.net/sun8112133/article/details/80551886     我們常常會遇到這樣一個問題, 如果有兩個或多個切面同時對應同一個

hibernate+springmvc+spring+ spring Data +maven+(JPA的@Query註解)整合

1、pom.xml的jar包依賴配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x

spring aop切點記錄日誌到mongodb 註解

package com.jk.aspectj; import java.util.Date; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtil

spring AOP切面程式設計——基於自定義註解

AOP稱為面向切面程式設計,在程式開發中主要用來解決一些系統層面上的問題,比如日誌,事務,許可權等待, (1)Aspect(切面):通常是一個類,裡面可以定義切入點和通知 (2)JointPoint(連線點):程式執行過程中明確的點,一般是方法的呼叫 (3)Advice(

Spring Security許可權管理相關配置註解

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2

【例項】使用Spring AOP進行業務增強(通過註解的方式)

以下程式碼通過了編譯,可以直接執行(需要更改包名) 目的: 通過Spring AOP實現對service的transfer(轉賬)操作增加事務處理。 增強類MyAdvice package

Spring-AOP的原理-動態代理-IOC-註解配置

一:概念的介紹:     什麼叫AOP?           關鍵:  橫向重複,縱向提取;         AOP能為容器中管理的物件動態生成代理物件,AOP是指程式設計不是針對某一個物件,而是針對一群物件,打個比方:就像一個一個個圓柱形,這一個個圓柱形就是一個個

web專案shiro與spring整合 maven依賴及web配置詳解

依賴shiro的maven座標: <dependency> <groupId>org.apache.shiro</groupId> <artifa

Spring Aop(四)——基於Aspectj註解的Advice介紹

4 基於Aspectj註解的Advice介紹之前介紹過,Advice一共有五種型別,分別是before、after return、after throwing、after(finally)和around。在使用註解的時候,它們對應的註解分別是@Before、@AfterRet

AOP--代理模式攔截器的簡易實現及原理

上文中提到代理分為靜態代理和動態代理,採用代理是為了通過不修改原始碼的情況下給程式動態統一新增功能,利用代理技術可以將業務邏輯中一些非業務邏輯的程式碼分離出來,把他們獨立到業務邏輯類外,比如日誌記錄,效能統計,安全控制,事務處理,異常處理等。這樣做,不僅降低了業務邏輯和非業務

spring框架maven依賴pom配置

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"          xsi:schemaLocation="

Spring程式碼例項系列-07:Spring AOP面向切面模擬實現事物控制

在Spring框架中,通過自定義的資料庫事物攔截器,對所有的Service層的Bean中的*Save和*Bc方法進行事務控制。 主要涉及的技術有: 1. Spring AOP 2. annot