spring AOP面向切面
JDK动态代理
新建接口类:UserDao类
public interface UserDao {
public void save ( ) ;
public void update ( ) ;
public void delete ( ) ;
public void select ( ) ;
}
写一个继承UserDao的类:UserDaoImpl类
public class UserDaoImpl implements UserDao {
public void save ( ) {
System. out. println ( "添加方法" ) ;
}
public void update ( ) {
System. out. println ( "修改方法" ) ;
}
public void delete ( ) {
System. out. println ( "删除方法" ) ;
}
public void select ( ) {
System. out. println ( "查询方法" ) ;
}
}
写一个代理对象类:JDKproxy类
public class Jdkplaxy implements InvocationHandler {
private Object target;
public Object bind ( Object target) {
this . target= target;
return Proxy. newProxyInstance ( target. getClass ( ) . getClassLoader ( ) , target. getClass ( ) . getInterfaces ( ) , this ) ;
}
public Object invoke ( Object proxy, Method method, Object[ ] args) throws Throwable {
Object obj = method. invoke ( target, args) ;
return obj;
}
}
测试
public class TestJDK {
@Test
public void test ( ) {
UserDao uDao= new UserDaoImpl ( ) ;
Jdkplaxy j= new Jdkplaxy ( ) ;
UserDao u2 = ( UserDao) j. bind ( uDao) ;
u2. select ( ) ;
u2. update ( ) ;
u2. delete ( ) ;
u2. save ( ) ;
}
}