IOC操作管理
![]()
![]()
![]()
![]()
AOP
![]()
![]()
public class JDKProxy{ //创建接口实现类代理对象 Class[] interfaces = {UserDao.class}; /* Proxy.newProxyInstance(JDKProxy.class.getClassLoader(),interfaces,new InvacationHandler() { @Override public Object invoke(Object proxy,Method method,Object[] args) throws Throwable{ return null; } }); */ UserDaoImpl userDao = new UserDaoImpl(); UserDao dao =(UserDao) Proxy.newProxyInstance(JDKProxy.class.getClassLoader(),interfaces,new UserDaoProxy(userDao)); int ret=user.add(1,2); System.out.println("===="+ret); } class UserDaoProxy implements InvocationHandler{ private Object obj; //创建谁的代理对象,把谁传递过来 //有参数的构造传递 //public UserDaoProxy(UserDaoImpl obj){ public UserDaoProxy(Object obj){ this.obj=obj; } /*增强的处理*/ @Override public Object invoke(Object proxy,Method method,Object[] args) throws Throwable{ //方法之前 System.out.println("方法之前执行..."+method.getName()+" :传递的参数 "+Arrays.toString(args)); //被增强的方法执行 Object res=method.invoke(obj,args); //方法之后 System.out.println("方法之后执行..."+obj); return res; } }
Spring Aop
![]()
![]()
![]()
切入点抽取
![]()
![]()
事务
![]()
观察者