静态代理,优点:不改变原来的代码,缺点:无法加入新的类型
代码
userDao.java
package com.sxt.dao;
public interface UserDao {
public void add();
}
userDaoImpl.java
package com.sxt.dao.impl;
import com.sxt.dao.UserDao;
public class UserDaoImpl implements UserDao{
public void add() {
System.out.println("利用mybatis实现动态代理");
}
}
userproxy.java
import com.sxt.dao.UserDao;
public class UserProxy implements UserDao{
private UserDao userDao;
public UserProxy(UserDao userDao){
this.userDao=userDao;
}
public void add() {
System.out.println("开启事务");
userDao.add();
System.out.println("关闭事务");
}
public static void main(String[] args) {
UserDaoImpl userDaoImpl = new UserDaoImpl();
UserProxy userProxy = new UserProxy(userDaoImpl);
userProxy.add();
}
}