• 15_AOP入门准备_静态代理模式


    【工程截图】

    【PersonDao.java】

    package com.HigginCui.daoProxy;
    
    public interface PersonDao {
        public void savePerson();
    }

    【PersonDaoImpl.java】

    package com.HigginCui.daoProxy;
    
    public class PersonDaoImpl implements PersonDao{
        @Override
        public void savePerson() {
            System.out.println("save Person...");
        }
    
    }

    【Transaction.java】

    package com.HigginCui.daoProxy;
    
    public class Transaction {
        public void beginTransaction(){
            System.out.println("begin transaction...");
        }
        public void commit(){
            System.out.println("begin commit...");
        }
    }

    【PersonDaoProxy.java】

    package com.HigginCui.daoProxy;
    
    public class PersonDaoProxy implements PersonDao{
        private PersonDao personDao;
        private Transaction transaction;
        
        public PersonDaoProxy(PersonDao personDao,Transaction transaction){
            this.personDao=personDao;
            this.transaction=transaction;
        }
        @Override
        public void savePerson() {
            //1.开启事务
            this.transaction.beginTransaction();
            //2.进行save操作
            this.personDao.savePerson();
            //3.事务提交 
            this.transaction.commit();
        }
    }

    【testPerson.java】

    package com.HigginCui.test;
    
    import org.junit.Test;
    
    import com.HigginCui.daoProxy.PersonDao;
    import com.HigginCui.daoProxy.PersonDaoImpl;
    import com.HigginCui.daoProxy.PersonDaoProxy;
    import com.HigginCui.daoProxy.Transaction;
    
    public class testPerson {
        @Test
        public void test(){
            PersonDao personDao=new PersonDaoImpl();
            Transaction transaction=new Transaction();
            PersonDaoProxy personDaoProxy=new PersonDaoProxy(personDao,transaction);
            personDaoProxy.savePerson();
        }
    }

    【运行结果】

    begin transaction...
    save Person...
    begin commit...
  • 相关阅读:
    《笨办法学python》 第14课手记
    《笨办法学Python》 第13课手记
    杭电2009----求数列的和
    杭电2008----数值统计
    杭电2007----平方和与立方和
    杭电2006----求奇数的乘积
    杭电2005----第几天?
    杭电2004---- 成绩转换
    杭电2003----求绝对值
    杭电2002----计算球体积
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5579310.html
Copyright © 2020-2023  润新知