1. 程式人生 > >面向切面程式設計的介紹和使用(Spring框架)

面向切面程式設計的介紹和使用(Spring框架)

package com.wlg.aspect; import java.util.Arrays; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.Signature; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.AfterThrowing; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; /**  * 使用Spring aop管理日誌  * @author LENOVO  */ @Order(value = 1) @Aspect @Component public class LogAspect {     //將所有的execution抽取出來 注意.*之間不能有空格     @Pointcut(value = "execution(* *.*(..))")     public void myPoint() {     };     // 第一個*表示返回型別, 第二個*表示全類名     @Before(value = "execution(public * * .*(int, int) )")     public void logStart(JoinPoint joinPoint) {         // 獲取引數列表         Object[] args = joinPoint.getArgs();         // 獲取方法簽名         Signature signature = joinPoint.getSignature();         // 獲取方法名         String name = signature.getName();         System.out.println("日誌【" + name + "】" + "開始執行" + "引數列表:"                 + Arrays.asList(args));     }     @After(value = "myPoint()")     public void logEnd(JoinPoint joint) {         String name = joint.getSignature().getName();         System.out.println("日誌【" + name + "】最終執行完成");     }     @AfterReturning(value = "myPoint() )", returning = "rt")     public void logReturn(JoinPoint joinPoint, Object rt) {         String name = joinPoint.getSignature().getName();         System.out.println("日誌【" + name + "】方法正常返回" + "返回值:" + rt);     }     @AfterThrowing(value = "myPoint()", throwing = "e")     public void logException(JoinPoint joinPoint, Exception e) {         String name = joinPoint.getSignature().getName();         System.out.println("日誌【" + name + "】出現異常" + e);     } }

相關推薦

面向切面程式設計介紹使用Spring框架

package com.wlg.aspect; import java.util.Arrays; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.Signature; import org.aspectj.lang.annotatio

Spring AOP面向切面程式設計:理解篇一看就明白

一、到底什麼是AOP(面向切面程式設計)? 無論在學習或者面試的時候,大家都會張口說spring的特性AOP和IOC(控制反轉咱們下一篇講),有些大神理解的很到位,但是對於大多數初中級工程師來講還是模糊階段,但是為什麼會有AOP這種技術呢?傻瓜都知道:為了開發者的方便!

Spring框架介紹IoC容器中Bean配置Spring框架

Spring框架整理第一發,Spring框架介紹,HelloWorld,IoC容器介紹,Bean配置 Spring概述      ①Spring為簡化企業級開發而生,使用Spring,JavaBean就可以實現很多以前要靠EJB才能實現的功能。同樣的功能,在EJB中要通過

瞭解AOP(面向切面程式設計)與OOP面向物件程式設計

AOP,他是一種思想,是OOP的延展。 1, 說OOP就來說下之前的OPP,最早開始的程式,一個函式(方法)或者說是功能做一個事情,這種思想劃分的是一個功能一個功能的來組合解決問題。 後來人們發現,功能解決問題是解決了,但是功能太多了,人腦實在是有限,

JdbcTemplate宣告式事務Spring框架

import java.sql.SQLException; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.sql.DataSource; import org.junit.Test;

我找到的最好的解釋面向切面程式設計的說法AOP

面向切面程式設計(AOP是Aspect Oriented Program的首字母縮寫) ,我們知道,面向物件的特點是繼承、多型和封裝。而封裝就要求將功能分散到不同的物件中去,這在軟體設計中往往稱為職責分配。實際上也就是說,讓不同的類設計不同的方法。這樣程式碼就分散到一個個的類中去了。這樣做的好處是降低了程式碼

Js面向物件程式設計——建立物件工廠模式

建立物件——工廠模式 建立物件——工廠模式 建立物件——工廠模式 工廠模式是軟體工程領域一種廣為人知的設計模式,這種模式抽象了建立具體物件的過程。考慮到在ECMAScript種無法建立類,開發人員就發明了一種函式,用函式來封裝以特定介面

Spring框架學習筆記——IoCInversion of Control,控制反轉AOPAspect Oriented Programming,面向切面程式設計

1、Spring IoC IoC是一個Bean容器,在Spring中,它認為一切Java資源都是Java Bean,容器的目標就是管理這些Bean和它們之間的關係。所以在Spring IoC裡面裝載的各種Bean,也可以理解為Java的各種資源,包括Java Bean的建立、事件、行為和Java

SSM框架Spring-AOP面向切面程式設計

1AOP概述 AOP(Aspect-Oriented Programming,面向切面程式設計):是一種新的方法論,是對傳統 OOP(Object-Oriented Programming,面向物件程式設計)的補充。兩種程式設計思想。是對面向物件程式設計的一種補充。 面向切

Spring框架學習筆記2——面向切面程式設計AOP

介紹 概念 面向切面程式設計AOP與面向物件程式設計OOP有所不同,AOP不是對OOP的替換,而是對OOP的一種補充,AOP增強了OOP。 假設我們有幾個業務程式碼,都呼叫了某個方法,按照OOP的思想,我們就會將此方法封裝在一個類中,之後通過物件.方法名呼叫 我們可以看作我們的業務程式碼被其他程式碼入侵或者是

【小家java】POP面向過程程式設計、OOP面向物件程式設計、AOP面向切面程式設計三種程式設計思想的區別聯絡

相關閱讀 【小家java】java5新特性(簡述十大新特性) 重要一躍 【小家java】java6新特性(簡述十大新特性) 雞肋升級 【小家java】java7新特性(簡述八大新特性) 不溫不火 【小家java】java8新特性(簡述十大新特性) 飽受讚譽 【小家java】java9

02 Spring的AOP面向切面程式設計

1、關於AOP AOP(Aspect Oriented Programming),即面向切面程式設計,可以說是OOP(Object Oriented Programming,面向物件程式設計)的補充和完善。OOP引入封裝、繼承、多型等概念來建立一種物件層次結構,用於模擬公共行為的一個集合。O

詳解Spring面向切面程式設計AOP)三種實現

一、什麼是AOP AOP(Aspect Oriented Programming),即面向切面程式設計,可以說是OOP(Object Oriented Programming,面向物件程式設計)的補充和完善。OOP引入封裝、繼承、多型等概念來建立一種物件層次結構,用於模擬公共行為的一個集合。不過OOP允許開

spring面試題面向切面程式設計AOP+MVC

Spring面向切面程式設計(AOP) 1.  解釋AOP 面向切面的程式設計,或AOP, 是一種程式設計技術,允許程式模組化橫向切割關注點,或橫切典型的責任劃分,如日誌和事務管理。   2. Aspect 切面 AOP

Spring2AOP 面向切面程式設計AOP目錄

Spring Core: Spring的核心功能即IOC容器,解決物件的建立及物件之間的依賴關係 Spring WEB: Spring對WEB模組的支援 Spring AOP: 面向切面程式設計 AOP的概述 AOP的底層實現 Spring AOP開發

Spring學習手札面向切面程式設計AOP

AOP理解   Aspect Oriented Program面向切面程式設計,通過預編譯方式和執行期動態代理實現程式功能的統一維護的一種技術。   但是,這種說法有些片面,因為在軟體工程中,AOP的價值體現的並不是程式碼方面,更多的是為了專案的模組化,而不僅僅是為了減少重複程式碼。   AOP是一種程

Java框架Spring AOP 面向切面程式設計 有哪幾種實現方式?如何選擇適合的AOP實現方式?

文章目錄 1. 實現方式 2. JDK動態代理如何實現? 2.1 主要的實現過程 3. 如何選擇? 1. 實現方式 JDK 動態代理實現和 cglib 實現 2. JDK

Java框架Spring AOP (Aspect Oriented Programming) 面向切面程式設計是什麼?

Spring AOP是什麼? Spring AOP是面向切面程式設計,將功能程式碼從業務邏輯程式碼中分離出來。 它允許程式通過分離的應用業務邏輯與系統級別服務。 程式設計師只需專注自己的業務邏輯,而不需要管系統級服務。 容器中的物件能享有容器中的公共服務(日誌、安全)。

Spring面向切面程式設計AOP原理一之使用JDK實現動態代理

什麼是面向切面程式設計? AOP為Aspect Oriented Programming的縮寫,意為:面向切面程式設計,通過預編譯方式和執行期動態代理實現程式功能的統一維護的一種技術。AOP是OOP(面向物件程式設計)的延續,是軟體開發中的一個熱點,也是Spr

# Spring-AOP面向切面程式設計--day08

Spring-AOP(面向切面程式設計)–day08  AOP個人理解:  在多個業務模組的過程中,存在相同的子環節,比如到銀行存錢、取錢、查詢餘額都需要進行使用者驗證環節,而這三個事務的核心是各自的存取錢、查詢餘額操作,使用者驗證是這三個事務模組都需要完成的操作使用者驗證,那麼可以將這