<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 165, comments - 198, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    我的AOP學習(AspectJ)

    Posted on 2007-10-15 16:57 G_G 閱讀(1167) 評論(0)  編輯  收藏 所屬分類: AOP
    學習擁有連貫
    在我剛認識 讓 java 動態 這種動態編譯動態加載的幾天后
    對我一向不懂的 AOP 特別是 AspectJ 開竅了 (哈哈 那感覺好啊^_^)
    下面我寫出我剛對AOP的一些小練

    1。目的
    DAO中大量的 session的開和閉 不緊使代碼成倍加,還及容易出錯
    用 設計模式
    hibernate 包裝 下大家好象有點接受不了(@_@!)
    AOP就進入我的視線 但總沒個切入點

    2。原理
    其實 讓 java 動態 就是那點東西 但IBM 包出個好用的框架 來 。

    3。代碼說明
    //*******************Dao.java ****************************
    package
    ?tt;
    //為了簡單 session 看成是 真的session 哈 ^_^
    public?class?Dao?{
    ????
    public?String?session?=?"close"?;?
    ????
    ????
    public?void?testDao(){
    ????????System.out.println(?
    "testDao?in?function?:?"+?session);
    ????}
    ????
    ????
    static?public?void?main(String[]args){
    ????????Dao?dao?
    =?new?Dao()?;
    ????????dao.testDao();
    ????????System.out.println(
    "main?in?function?:?"?+??dao.session);
    ????}
    }

    //*****************List.aj ****************************
    package?tt;

    public?aspect?List?{
    ??? //切點? 范圍聲明? (Dao.testDao 歸 readOnly切點管? )
    ????pointcut?readOnly(Dao?dao):execution(
    *?*Dao.testDao*(..))&&this(dao);

    ????//掛載
    readOnly 開始方法
    ?????before(Dao?dao)?:??readOnly(dao)?{?????????
    ?????????????openSession(dao);
    ??????}
    ???? //掛載 readOnly 結束方法
    ?????after(Dao?dao)?returning()??:??readOnly(dao)?{
    ??????????close(dao);
    ?????}
    ????
    ????
    // readOnly 方法 運行代碼 (到這可以大膽的寫 java 代碼了 ) 。。。。
    ?????private?void?openSession(Dao?dao)?{
    ?????????
    if(dao.session.equals("close"))
    ?????????????dao.session?
    =?"Session?Open";
    ?????}
    ?????
    private?void?close(Dao?dao)?{
    ?????????dao.session?
    =?"close"?;
    ?????}
    }

    4。結果:
    testDao in function : Session Open
    main in function : close



    4。后續
    AspectJ 使 AOP 簡單
    可能還會統一標準
    能為我們的java 框架靈活 更上一層 (期待)


    主站蜘蛛池模板: 亚洲粉嫩美白在线| 99999久久久久久亚洲| 黄桃AV无码免费一区二区三区| 国产特级淫片免费看| 日日摸日日碰夜夜爽亚洲| 又粗又硬免费毛片| g0g0人体全免费高清大胆视频| 亚洲综合另类小说色区色噜噜| 又粗又长又爽又长黄免费视频 | 97在线视频免费公开视频| 亚洲中文字幕无码专区| 国产在线观看免费av站| 无码乱人伦一区二区亚洲一| 免费成人在线视频观看| 久久亚洲AV成人无码国产| 亚洲免费网站在线观看| 99热亚洲色精品国产88| 免费又黄又硬又爽大片| CAOPORN国产精品免费视频| 亚洲gv白嫩小受在线观看| 免费在线看v网址| 色窝窝亚洲AV网在线观看| 亚洲精品少妇30p| 亚洲三级在线免费观看| 亚洲另类自拍丝袜第五页| 亚洲精品线路一在线观看| 99久9在线|免费| 亚洲AV成人无码久久WWW| 亚洲一区二区三区AV无码| 99久久精品免费精品国产| 亚洲色成人四虎在线观看| 亚洲性日韩精品一区二区三区| 日韩精品在线免费观看| 亚洲精品欧美综合四区| 亚洲色婷婷综合久久| 青青青国产在线观看免费网站| 暖暖免费中文在线日本| 久久久久久亚洲精品成人| 亚洲高清成人一区二区三区| 成人黄网站片免费视频| 亚洲成av人片在线天堂无|