亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Spring事務處理及其AOP框架的內幕(1)

2019-11-18 11:10:20
字體:
來源:轉載
供稿:網友

  SPRing框架中成功吸引人的一點就是容器事務的治理,提供了一個輕量級的容器事務處理,針對的對象是普通的java類,使用Spring事務治理的話,你可以按照自己的業務把一些相關的方法納入其事務治理里面,這就避免了程序員在處理事務的過程中繁瑣的工作.同時這些也是ejb2.X規范里面吸引人的一點,這在spring里面都很好的提供.雖然在跨容器的事務治理,spring里面并沒有提供,但是對于一般的web程序來說,也不需要僅僅為了那些功能而不得不使用ejb.不過,最近jboss的嵌入式的ejb容器也可以做的更小了,也是開源中的選擇之一.無論技術是怎樣發展的,當前,我們先來研究其中AOP實現的方法.

事實上,Spring中的事務處理是通過AOP思想來實現的,Spring AOP與aspect J和JBoss具有很大的不同,首先,使用Spring AOP框架的用戶要記住的一點是,Spring AOP針對的是方法層次上的實現,而其他兩者對字段也提供了支持.說到Spring AOP的內幕,其實也不難,對于有接口的類,使用的是Java內部類提供的Proxy;而對于那些不實現接口的類,使用的是cglib庫,動態創建一個子類來實現.

在Spring AOP中提供了4種處理切入類型:around,before,after,introdUCtion.顧名思義,

1)around是針對具體的某個切入點的方法(比如,現在有個OrderBook方法,around的切入類型是就這個方法的內部調用,是通過java的元數據,在運行時通過Method.invoke來調用,具有返回值,當發生意外的時候會終止.記住的一點是,返回值.);

2)before是在方法調用前調用(在OrderBook方法前調用,但是沒有返回值,同時在通常意外情況下,會繼續運行下一步方法.記住的一點是沒有返回值);

3)after和before剛好相反,沒有什么非凡的地方.

4)introduction是一個更加非凡的,但功能更加強大的切入類型.比如(你現在有Book對象,Computer對象,還有幾十個這種業務對象,現在你希望在每個這樣的對象中都加入一個記錄最后修改的時間.但是你又不希望對每個類都進行修改,因為太麻煩了,同時更重要的一點,破壞了對象的完整性,說不定你以后又不需要這個時間數據了呢...這時怎么辦呢?Spring AOP就為你專門實現這種思想提供了一個切入處理,那就是introduction.introduction可以為你動態加入某些方法,這樣可以在運行時,強制轉換這些對象,進行插入時間數據的動作,更深的內幕就是C++虛函數中的vtable思想).不過這種動態是以性能作為代價的,使用之前要慎重考慮,這里我們談的是技術,所以就認為他是必需的.

好,現在我們就拿第四種來進行舉例說明Spring AOP的強大之處:

1)假設創建了一個BookService接口及其實現方法(你自己的業務對象):

//$ID:BookService.java Created:2005-11-6 by Kerluse Benn

package com.osiris.springaop;

public interface BookService {

public String OrderComputerMagazine(String userName,String bookName);

public String OrderBook(String userName,String bookName);

}

//$ID:BookServiceImpl.java Created:2005-11-6 by Kerluse Benn

package com.osiris.springaop;

public class BookServiceImpl implements BookService{

public String OrderBook(String name,String bookName) {

// TODO Add your codes here

String result=null;

result="訂購"+bookName+"成功";

return result;

}

public String OrderComputerMagazine(String userName, String bookName) {

// TODO Add your codes here

String result=null;

result="訂購"+bookName+"成功";

return result;

}

}
  Spring框架中成功吸引人的一點就是容器事務的治理,提供了一個輕量級的容器事務處理,針對的對象是普通的java類,使用Spring事務治理的話,你可以按照自己的業務把一些相關的方法納入其事務治理里面,這就避免了程序員在處理事務的過程中繁瑣的工作.同時這些也是ejb2.X規范里面吸引人的一點,這在spring里面都很好的提供.雖然在跨容器的事務治理,spring里面并沒有提供,但是對于一般的web程序來說,也不需要僅僅為了那些功能而不得不使用ejb.不過,最近jboss的嵌入式的ejb容器也可以做的更小了,也是開源中的選擇之一.無論技術是怎樣發展的,當前,我們先來研究其中AOP實現的方法.

事實上,Spring中的事務處理是通過AOP思想來實現的,Spring AOP與Aspect J和JBoss具有很大的不同,首先,使用Spring AOP框架的用戶要記住的一點是,Spring AOP針對的是方法層次上的實現,而其他兩者對字段也提供了支持.說到Spring AOP的內幕,其實也不難,對于有接口的類,使用的是Java內部類提供的Proxy;而對于那些不實現接口的類,使用的是cglib庫,動態創建一個子類來實現.

在Spring AOP中提供了4種處理切入類型:around,before,after,introduction.顧名思義,

1)around是針對具體的某個切入點的方法(比如,現在有個OrderBook方法,around的切入類型是就這個方法的內部調用,是通過java的元數據,在運行時通過Method.invoke來調用,具有返回值,當發生意外的時候會終止.記住的一點是,返回值.);

2)before是在方法調用前調用(在OrderBook方法前調用,但是沒有返回值,同時在通常意外情況下,會繼續運行下一步方法.記住的一點是沒有返回值);

3)after和before剛好相反,沒有什么非凡的地方.

4)introduction是一個更加非凡的,但功能更加強大的切入類型.比如(你現在有Book對象,Computer對象,還有幾十個這種業務對象,現在你希望在每個這樣的對象中都加入一個記錄最后修改的時間.但是你又不希望對每個類都進行修改,因為太麻煩了,同時更重要的一點,破壞了對象的完整性,說不定你以后又不需要這個時間數據了呢...這時怎么辦呢?Spring AOP就為你專門實現這種思想提供了一個切入處理,那就是introduction.introduction可以為你動態加入某些方法,這樣可以在運行時,強制轉換這些對象,進行插入時間數據的動作,更深的內幕就是C++虛函數中的vtable思想).不過這種動態是以性能作為代價的,使用之前要慎重考慮,這里我們談的是技術,所以就認為他是必需的.

好,現在我們就拿第四種來進行舉例說明Spring AOP的強大之處:

1)假設創建了一個BookService接口及其實現方法(你自己的業務對象):

//$ID:BookService.java Created:2005-11-6 by Kerluse Benn

package com.osiris.springaop;

public interface BookService {

public String OrderComputerMagazine(String userName,String bookName);

public String OrderBook(String userName,String bookName);

}

//$ID:BookServiceImpl.java Created:2005-11-6 by Kerluse Benn

package com.osiris.springaop;

public class BookServiceImpl implements BookService{

public String OrderBook(String name,String bookName) {

// TODO Add your codes here

String result=null;

result="訂購"+bookName+"成功";

return result;

}

public String OrderComputerMagazine(String userName, String bookName) {

// TODO Add your codes here

String result=null;

result="訂購"+bookName+"成功";

return result;

}

}

上一篇:Java文件操作詳解

下一篇:IOC詳解(1)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久国产天堂福利天堂| 国产精欧美一区二区三区| 国产精品ⅴa在线观看h| 亚洲精品美女久久久| 国产噜噜噜噜久久久久久久久| 日韩精品有码在线观看| 日韩中文字幕网| 青青草国产精品一区二区| 欧美在线视频一二三| 久久久久久成人| 日韩中文字幕视频| 日韩男女性生活视频| 日韩欧美黄色动漫| 日韩中文字幕网址| 国产精品中文字幕在线观看| 国产精品夜间视频香蕉| 国产精品一区二区三区久久久| 97视频在线观看视频免费视频| 亚洲人精品午夜在线观看| 久久久久亚洲精品国产| 欧美一区二区三区……| 亚洲最大激情中文字幕| 国产91网红主播在线观看| 欧美日韩美女在线观看| 亚洲第一精品电影| 成人亚洲激情网| 亚洲xxxx3d| 亚洲a∨日韩av高清在线观看| 91欧美精品午夜性色福利在线| 国产成人精品日本亚洲专区61| 在线观看中文字幕亚洲| 国产精品视频网站| 日韩美女主播视频| 视频直播国产精品| 国产精品自产拍在线观| 色偷偷88888欧美精品久久久| 国产精品久久久久久久av电影| 国产精品第一视频| 精品久久久久久国产| 欧美xxxx14xxxxx性爽| 日韩精品黄色网| 97**国产露脸精品国产| 亚洲性日韩精品一区二区| 精品在线观看国产| 亚洲国产日韩欧美在线动漫| 日本精品免费观看| 精品福利在线观看| 欧美性猛交xxxx富婆| 中文字幕一区二区三区电影| 成人午夜高潮视频| 午夜精品福利视频| 亚洲欧美日韩网| 日韩专区中文字幕| 日本一区二三区好的精华液| 疯狂欧美牲乱大交777| 国产成人精品免费久久久久| 日韩一区二区久久久| 青青久久av北条麻妃海外网| 亚洲欧美日韩精品久久| 久久久久久久香蕉网| 成人免费自拍视频| 国产精品99蜜臀久久不卡二区| 亚洲jizzjizz日本少妇| 亚洲第一网站男人都懂| 91视频九色网站| 欧美高清videos高潮hd| 成人女保姆的销魂服务| 伊人激情综合网| 欧美成人免费一级人片100| 亚洲日本欧美日韩高观看| 亚洲午夜精品久久久久久性色| 91国内免费在线视频| 久久福利视频导航| 91精品国产乱码久久久久久久久| 精品一区电影国产| 日韩h在线观看| 日韩黄色在线免费观看| 久久久久一本一区二区青青蜜月| 久久久久久久久久久久久久久久久久av| 日韩精品福利在线| 久久视频中文字幕| 亚洲欧美日本精品| 孩xxxx性bbbb欧美| 日韩中文在线视频| 日本成人精品在线| 亚洲国产成人精品一区二区| 欧美怡红院视频一区二区三区| 97在线免费观看| 国产精品影片在线观看| 日本最新高清不卡中文字幕| 亚洲黄色在线观看| 久久久久北条麻妃免费看| 一区二区三区www| 成人福利视频在线观看| 日韩免费观看高清| 欧美视频在线观看免费| 丝袜亚洲欧美日韩综合| 亚洲国产精品久久久久秋霞不卡| 亚洲在线一区二区| 国内精品400部情侣激情| 国产一区二区三区丝袜| 欧美老肥婆性猛交视频| 成人网址在线观看| 亚洲性av网站| 久久国产精品免费视频| 成人夜晚看av| 亚洲欧美国产制服动漫| 亚州av一区二区| 中文字幕一区电影| 日韩欧美在线第一页| 日韩av在线直播| 国产亚洲美女久久| 国产成人精品日本亚洲| 久久久久www| 国产一区二区三区日韩欧美| 中文字幕综合在线| 韩日精品中文字幕| 久久久久久久成人| 日韩精品在线播放| 精品久久久久久久中文字幕| 色妞久久福利网| 国产69久久精品成人看| 欧美激情亚洲另类| 久久99久国产精品黄毛片入口| 亚洲精品视频在线播放| 久久影院资源网| 久久久精品2019中文字幕神马| 国内免费精品永久在线视频| 人人爽久久涩噜噜噜网站| 国产免费一区二区三区在线能观看| 在线视频国产日韩| 精品中文字幕在线| 美女扒开尿口让男人操亚洲视频网站| 久久久久久久久久久免费| 日韩欧美aⅴ综合网站发布| 亚洲欧洲在线播放| 超碰97人人做人人爱少妇| 精品久久香蕉国产线看观看gif| 亚洲第一av网站| 91美女片黄在线观| 久久成人亚洲精品| 欧美电影在线观看网站| 4p变态网欧美系列| 欧美激情综合亚洲一二区| 亚洲欧美制服另类日韩| 久久久久久久91| 久久精品在线播放| 国产精品678| 亚洲欧洲高清在线| 亚洲欧美综合精品久久成人| 九九久久久久久久久激情| 国产噜噜噜噜久久久久久久久| 中文.日本.精品| 国产日韩欧美在线看| 5278欧美一区二区三区| 91麻豆桃色免费看| 69av在线视频| 国产欧美精品一区二区| 日韩欧美亚洲一二三区| 精品电影在线观看| 伊人成人开心激情综合网| 国产欧美日韩免费| 欧美在线视频一区| 欧美色视频日本高清在线观看|