日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring学习(三)Spring AOP 简介

發布時間:2024/4/17 javascript 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring学习(三)Spring AOP 简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文借鑒:Spring學習(特此感謝!)

一、簡介

定義

 aop就是面向切面編程,在數據庫事務中切面編程被廣泛使用。

 在面向切面編程的思想里面,把功能分為核心業務功能,和周邊功能

 核心業務:比如登陸,增加數據,刪除數據都叫核心業務

 周邊功能:比如性能統計,日志,事務管理等等

 PS:在 Spring 面向切面編程的AOP思想里,周邊功能即被定義為切面

核心思想

  核心業務功能和切面功能分別獨立進行開發,然后把切面功能和核心業務功能 "編織" 在一起,這就叫AOP。

目的

  是將那些與業務無關,卻被業務模塊所共同調用的邏輯或責任(例如事務處理、日志管理、權限控制等)封裝起來,便于減少系統的重復代碼降低模塊間的耦合度,并有利于未來的可拓展性和可維護性

相關概念

切入點(Pointcut)

  在哪些類,哪些方法上切入(where

通知(Advice)

  在方法執行的時機(when:方法前/方法后/方法前后)做什么(what:增強的功能),包括 “around,” “before” and "after"等多種類型。

切面(Aspect)

  切面 = 切入點 + 通知,通俗點就是:在什么時機,什么地方,做什么增強!

織入(Weaving)

  把切面加入到對象,并創建出代理對象的過程。(由 Spring 來完成)

代碼分析

1、新建一個類(功能:模擬業務功能代碼)

/*** 模擬正式的業務service*/ public class ProductService {public void doSomeService(){System.out.println("doSomeService");//模擬正式業務 } }

2、新建一個切面(功能:模擬日志記錄)

/*** 定義一個切面(功能:模擬記錄日志)*/ public class LoggerAspect {
  //入參可以理解為相應的核心業務,方法內代碼操控核心業務在這個切面中怎么處理(下面的功能實現了在核心業務的前后分別打印兩行語句)
public Object log(ProceedingJoinPoint joinPoint) throws Throwable {System.out.println("start log:" + joinPoint.getSignature().getName());Object object = joinPoint.proceed();System.out.println("end log:" + joinPoint.getSignature().getName());return object;} }

3、xml配置剛才新增的兩個bean,再對AOP進行配置

<!--配置一個名叫productService的bean,這個service功能是模擬正式業務的代碼--><bean name="productService" class="service.ProductService"/><!--配置日志bean--><bean id="loggerAspect" class="aspect.LoggerAspect"/><!--配置AOP切面--><aop:config><!-- 配置切入點 expression屬性設置切點表達式(AspectJ) --><aop:pointcut id="loggerCutpoint" expression="execution(* service.ProductService.*(..)) "/><!-- 配置切面(增加日志功能) --><aop:aspect id="logAspect" ref="loggerAspect"><!-- 配置切面切入時機 around表示在核心業務功能前后執行切面 method表示要調用的方法--><aop:around pointcut-ref="loggerCutpoint" method="log"/></aop:aspect></aop:config>

4、測試代碼

//1、使用ApplicationContext類讀取xml配置文件生成bean工廠(bean工廠為了控制反轉時獲取對象用)ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});//4、查看切面的實現結果ProductService productService = (ProductService)context.getBean("productService");productService.doSomeService();

5、顯示結果

?

轉載于:https://www.cnblogs.com/riches/p/11504878.html

總結

以上是生活随笔為你收集整理的Spring学习(三)Spring AOP 简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。