内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

詳解SpringAOP攔截器的基本實現(xiàn)-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!

目前創(chuàng)新互聯(lián)已為近1000家的企業(yè)提供了網(wǎng)站建設、域名、虛擬空間、綿陽服務器托管、企業(yè)網(wǎng)站設計、吳橋網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

一個程序猿在夢中解決的 Bug

沒有人是不做夢的,在所有夢的排行中,白日夢最令人傷感。不知道身為程序猿的大家,有沒有睡了一覺,然后在夢中把睡之前代碼中怎么也搞不定的 Bug 給解決的經(jīng)歷?反正我是有過。

什么是 AOP ?

AOP 為 Aspect Oriented Programming 的縮寫,意為:面向切面編程,通過預編譯方式和運行期動態(tài)代理實現(xiàn)程序功能的統(tǒng)一維護的一種技術。AOP 是 OOP 的延續(xù),是軟件開發(fā)中的一個熱點,也是 Spring 框架中的一個重要內(nèi)容,是函數(shù)式編程的一種衍生范型。利用 AOP 可以對業(yè)務邏輯的各個部分進行隔離,從而使得業(yè)務邏輯各部分之間的耦合度降低,提高程序的可重用性,同時提高了開發(fā)的效率。

翻譯為人能聽懂的話來說就是: AOP 可以理解為在方法執(zhí)行前后可以去完成相同的業(yè)務邏輯,而不需要你去改業(yè)務代碼。舉個例子吧:現(xiàn)在有一個需求,要在項目中的每一個方法前面都輸出一句:開始執(zhí)行啦! 需求很明確了,常規(guī)的解決方式就是在每個具體的方法最前面加一句system.out.print("開始執(zhí)行啦!");,冒出這個想法的程序員是普通程序猿,當然,這是開個玩笑啦!這樣的代碼,如果一兩個方法用這樣的方式?jīng)]有任何問題完全可行,如果幾十個、幾百個這樣的方法呢?

這時候,我們就可以使用 AOP 來完成以上邏輯了,不需要改動任何一個方法,無侵入的方式來完成這個需求。

AOP 在實際項目中運用的場景主要有權限管理(Authority Management)、事務管理(Transaction Management)、安全管理(Security)、日志管理(Logging)和調(diào)試管理(Debugging)等。就是這些與業(yè)務邏輯不是很關聯(lián)密切的公共方法,我們就可以使用AOP。

Spring AOP 和 MVC 攔截器 又是什么?

通過上面的解釋,我是知道了,AOP 其實就是可以算一種設計模式,或者說一種編程思想,而 Spring AOP 就是 Spring框架 對 AOP 這種思想進行了一系列技術實現(xiàn)和封裝,讓我們只需要配置一下就可以達到這個模式,在配置文件中使用<aop:config>元素。那MVC 攔截器又是什么鬼呢?可以理解為是 Spring MVC 框架對 AOP 的一種實現(xiàn)方式,在配置文件中使用<mvc:interceptors>元素進行配置。這兩種方式就是實現(xiàn)了 AOP 的編程思想,我們只需要進行一定的配置就可以了?,F(xiàn)在好多人也都把 Spring AOP 和 MVC 攔截器看成是一種相同的方式,都叫攔截器或AOP。

開始擼一下代碼

1.新建一個TestInterceptor類繼承于HandlerInterceptorAdapter。

詳解Spring AOP 攔截器的基本實現(xiàn)

具體代碼:

package cn.mayongfa.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

public class TestInterceptor extends HandlerInterceptorAdapter {
  @Override
  public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
      // 請求處理完成之后
      System.out.println("請求處理完成啦!");
      super.afterCompletion(request, response, handler, ex);
  }

  @Override
  public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
      // 處理器執(zhí)行完畢之后
      System.out.println("處理器執(zhí)行完畢啦!");
      super.postHandle(request, response, handler, modelAndView);
  }

  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
      // 處理器實際執(zhí)行之前
      System.out.println("處理器執(zhí)行之前!");
      return super.preHandle(request, response, handler);
  }
}

文章名稱:詳解SpringAOP攔截器的基本實現(xiàn)-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://m.rwnh.cn/article30/ddsoso.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、全網(wǎng)營銷推廣、外貿(mào)網(wǎng)站建設、ChatGPTApp開發(fā)、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
彰化县| 安阳市| 乃东县| 新郑市| 临沧市| 清徐县| 莱阳市| 方城县| 中方县| 囊谦县| 青铜峡市| 萍乡市| 阿城市| 常宁市| 大同县| 洛南县| 渑池县| 永昌县| 南昌县| 富宁县| 水富县| 称多县| 周宁县| 衡南县| 安仁县| 双牌县| 醴陵市| 吉隆县| 鱼台县| 鸡东县| 包头市| 拉萨市| 上虞市| 绥芬河市| 托克托县| 莒南县| 中牟县| 鲁甸县| 清新县| 眉山市| 简阳市|