最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring中aop的xml配置方法實例詳解

 更新時間:2017年07月28日 10:44:36   作者:小Cai先森  
AOP的配置方式有2種方式:xml配置和AspectJ注解方式。下面這篇文章主要給大家介紹了關于spring中aop的xml配置方法的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。

前言

AOP:即面向切面編程,是一種編程思想,OOP的延續(xù)。在程序開發(fā)中主要用來解決一些系統(tǒng)層面上的問題,比如日志,事務,權限等等。

aop,面向切面編程的目標就是分離關注點,比如:一個騎士只需要關注守護安全,或者遠征,而騎士輝煌一生的事跡由誰來記錄和歌頌呢,當然不會是自己了,這個完全可以由詩人去歌頌,比如當騎士出征的時候詩人可以去歡送,當騎士英勇犧牲的時候,詩人可以寫詩歌頌騎士的一生。那么騎士只需要關注怎么打仗就好了。而詩人也只需要關注寫詩歌頌和歡送就好了,那么這樣就把功能分離了。所以可以把詩人當成一個切面,當騎士出征的前后詩人分別負責歡送和寫詩歌頌(記錄)。而且,這個切面可以對多個騎士或者明人使用,并不只局限于一個騎士。這樣,既分離了關注點,也減低了代碼的復雜程度。

耐心看完本篇文章,會對理解AOP有一定的幫助。下面話不多說,來一起看看詳細的介紹吧。

代碼示例如下:

騎士類:

package com.cjh.aop2;

/**
 * @author Caijh
 *
 * 2017年7月11日 下午3:53:19
 */
public class BraveKnight {
 public void saying(){
  System.out.println("我是騎士");
 }
}

詩人類:

package com.cjh.aop2;

/**
 * @author Caijh
 *
 * 2017年7月11日 下午3:47:04
 */
public class Minstrel {
 public void beforSay(){
  System.out.println("前置通知");
 }
 
 public void afterSay(){
  System.out.println("后置通知");
 }
}

spring配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
 <!-- 目標對象 -->
 <bean id="knight" class="com.cjh.aop2.BraveKnight"/>
 <!-- 切面bean -->
 <bean id="mistrel" class="com.cjh.aop2.Minstrel"/>
 <!-- 面向切面編程 -->
 <aop:config>
  <aop:aspect ref="mistrel">
   <!-- 定義切點 -->
   <aop:pointcut expression="execution(* *.saying(..))" id="embark"/>
   <!-- 聲明前置通知 (在切點方法被執(zhí)行前調用)-->
   <aop:before method="beforSay" pointcut-ref="embark"/>
   <!-- 聲明后置通知 (在切點方法被執(zhí)行后調用)-->
   <aop:after method="afterSay" pointcut-ref="embark"/>
  </aop:aspect>
 </aop:config>
</beans>

測試代碼:

package com.cjh.aop2;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @author Caijh
 *
 * 2017年7月11日 下午4:02:04
 */
public class Test {
 public static void main(String[] args) {
  ApplicationContext ac = new ClassPathXmlApplicationContext("com/cjh/aop2/beans.xml");
  BraveKnight br = (BraveKnight) ac.getBean("knight");
  br.saying();
 }
}

執(zhí)行結果如下:

前置通知
我是騎士
后置通知

=======================================================================================

aop(面向切面編程)的好處就是,當執(zhí)行了我們主要關注的行為(騎士類對象),也就是切點,那么切面(詩人對象)就會自動為我們進行服務,無需過多關注。如上測試代碼,我們只調用了BraveKnight類的saying()方法,它就自己在saying方法前執(zhí)行了前置通知方法,在執(zhí)行完saying之后就自動執(zhí)行后置通知。通過這樣我們可以做權限設置和日志處理。 

補充:pointcut執(zhí)行方法書寫格式如下

工程目錄結構:

如果運行過程中出現(xiàn)nofoundclass的錯誤,一般是少了:aspectjweaver.jar這個包,需要下載,并添加進去。

下載地址:http://xiazai.jb51.net/201707/yuanma/aspectjweaver(jb51.net).rar

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • 深入解析Java中volatile關鍵字的作用

    深入解析Java中volatile關鍵字的作用

    Java語言是支持多線程的,為了解決線程并發(fā)的問題,在語言內部引入了 同步塊 和 volatile 關鍵字機制
    2013-09-09
  • Spring?Security短信驗證碼實現(xiàn)詳解

    Spring?Security短信驗證碼實現(xiàn)詳解

    本文主要介紹了Spring?Security短信驗證碼的實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-11-11
  • Java四種常用線程池的詳細介紹

    Java四種常用線程池的詳細介紹

    今天小編就為大家分享一篇關于Java四種常用線程池的詳細介紹,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Java面向對象的封裝你了解嗎

    Java面向對象的封裝你了解嗎

    這篇文章主要為大家詳細介紹了Java面向對象的封裝,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Springboot入門案例及部署項目的詳細過程

    Springboot入門案例及部署項目的詳細過程

    Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程,本文給大家分享一個入門案例使用Springboot1.5.9搭建,具體配置部署過程跟隨小編一起看看吧
    2021-07-07
  • 為什么說HashMap線程不安全

    為什么說HashMap線程不安全

    本文主要介紹了為什么說HashMap線程不安全,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • JVM內存結構相關知識解析

    JVM內存結構相關知識解析

    這篇文章主要介紹了JVM內存結構相關知識解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • 配置DispatcherServlet的方法介紹

    配置DispatcherServlet的方法介紹

    今天小編就為大家分享一篇關于配置DispatcherServlet的方法介紹,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • springboot的jar能獨立運行的原因解析

    springboot的jar能獨立運行的原因解析

    這篇文章主要介紹了springboot的jar能獨立運行的原因解析,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • java實現(xiàn)簡單的學生管理系統(tǒng)

    java實現(xiàn)簡單的學生管理系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)簡單的學生管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02

最新評論

富蕴县| 宝丰县| 栾川县| 八宿县| 金阳县| 临西县| 祁东县| 铁岭市| 治县。| 民乐县| 泰和县| 麟游县| 休宁县| 隆德县| 乌拉特后旗| 鄂温| 米泉市| 天祝| 大石桥市| 韶关市| 海南省| 华宁县| 民和| 甘南县| 报价| 托克托县| 海伦市| 手游| 绥棱县| 万山特区| 丹凤县| 阳江市| 克山县| 两当县| 枝江市| 屏东县| 黄龙县| 汕头市| 凤山市| 金湖县| 蕉岭县|