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

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

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

    java學習

    java學習

     

    設計模式之cglib的動態代理

    cglib的動態生成的代理對象是目標類的子類。
    public class Classes implements Serializable{
    private Long cid;
    public Long getCid() {
    return cid;
    }
    public void setCid(Long cid) {
    this.cid = cid;
    }
    public String getCname() {
    return cname;
    }
    public void setCname(String cname) {
    this.cname = cname;
    }
    public String getDescription() {
    return description;
    }
    public void setDescription(String description) {
    this.description = description;
    }
    private String cname;
    private String description;
    }
    public interface ClassesDao {
    public void saveClasses(Classes classes);
    }
    public class ClassesDaoImpl implements ClassesDao{
    @Override
    public void saveClasses(Classes classes) {
    System.out.println("保存");
    }
    }
    public class ClassesDaoInterceptor implements MethodInterceptor {
    private Object target;
    private MyTransaction myTransaction;
    public ClassesDaoInterceptor(Object target, MyTransaction myTransaction) {
    this.target = target;
    this.myTransaction = myTransaction;
    }
    public Object create() {
    Enhancer en = new Enhancer();
    en.setSuperclass(target.getClass());
    en.setCallback(this);
    return en.create();
    }
    @Override
    public Object intercept(Object proxy, Method method, Object[] args,
    MethodProxy arg3) throws Throwable {
    System.out.println(proxy.getClass().getName());
    System.out.println(arg3.getSuperName());
    if (method.getName().equals("saveClasses")
    || method.getName().equals("updateClasses")) {
    this.myTransaction.beginTransaction();// ??
    method.invoke(this.target, args);// ?????
    this.myTransaction.commit();
    } else {
    method.invoke(this.target, args);
    }
    return null;
    }
    }
    public class MyTransaction {
    public void beginTransaction(){
    System.out.println("開始事務");
    }
    public void commit(){
    System.out.println("提交事務");
    }
    }
    public class ClassesDaoTest {
    public static void testSaveClasses(){
    Object dao = new ClassesDaoImpl();
    MyTransaction myTransaction = new MyTransaction();
    ClassesDaoInterceptor interceptor = new ClassesDaoInterceptor(dao, myTransaction);
    ClassesDaoImpl proxyDao= (ClassesDaoImpl) interceptor.create();
    Classes classes = new Classes();
    classes.setCname("aaaa");
    proxyDao.saveClasses(classes);
    }
    public static void main(String[] args) {
    testSaveClasses();
    }
    }

    posted on 2017-09-14 15:41 楊軍威 閱讀(130) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品岛国片在线观看| 99热在线免费观看| 成年人视频在线观看免费| 久久亚洲精品无码| fc2成年免费共享视频18| 在线观看人成网站深夜免费| 色婷婷六月亚洲婷婷丁香| 免费成人在线视频观看| 亚洲国产a级视频| 免费福利在线观看| 国产免费黄色大片| 校园亚洲春色另类小说合集| 成人性生活免费视频| 亚洲中文字幕无码爆乳app| 亚洲一级毛片免费观看| 亚洲第一页在线视频| 91成人在线免费观看| 亚洲春黄在线观看| 亚洲黄色免费在线观看| 亚洲一区二区三区深夜天堂| www.免费在线观看| 亚洲一卡2卡3卡4卡乱码 在线| 在线观看免费人成视频色9| 中文字幕 亚洲 有码 在线| 免费视频淫片aa毛片| 亚洲av无码有乱码在线观看| 在线观看亚洲免费视频| 精品国产亚洲第一区二区三区 | 亚洲天堂2017无码中文| 99热这里只有精品6免费| 久久精品国产亚洲AV麻豆网站| 国产成人免费午夜在线观看| 亚洲一区二区三区播放在线| 影音先锋在线免费观看| 国产精品亚洲色图| 亚洲日本va在线视频观看| 国产亚洲精彩视频| 亚洲日韩中文字幕日韩在线 | 亚洲一区二区女搞男| 久章草在线精品视频免费观看| 最近免费中文字幕mv在线电影|