============== 方法前置增强器 ============== 动态代理开发的四个步骤: - 原始类:public class UserServiceImpl implements UserService { ... } - 增强类:public class Before implements MethodBeforeAdvice { ... } <= - 切入点: - 配增强: public class 方法前置增强器 implements MethodBeforeAdvice { 原始方法 传递给原始方法的参数 @Override | | public void before(Method method, Object[] objects, Object o) throws Throwable { 在原始方法之前执行 | } 原始对象 } /src/main/java/cn/tedu/proxy/Before.java: public class Before implements MethodBeforeAdvice { private Logger logger = Logger.getLogger(Before.class); @Override public void before(Method method, Object[] objects, Object o) throws Throwable { logger.debug(">>>> BEFORE >>>>"); logger.debug(method); for (Object object : objects) logger.debug(object); logger.debug(o); logger.debug(">>>>>>>>>>>>>>>>"); } } >>>> BEFORE >>>> public abstract void cn.tedu.proxy.UserService.register(cn.tedu.proxy.User) User{username='zhangfei', password='123456'} cn.tedu.proxy.UserServiceImpl@50de186c >>>>>>>>>>>>>>>> UserServiceImpl.register >>>> BEFORE >>>> public abstract cn.tedu.proxy.User cn.tedu.proxy.UserService.login(java.lang.String,java.lang.String) zhangfei 123456 cn.tedu.proxy.UserServiceImpl@50de186c >>>>>>>>>>>>>>>> UserServiceImpl.login >>>> BEFORE >>>> public abstract void cn.tedu.proxy.OrderService.show(int) 1 cn.tedu.proxy.OrderServiceImpl@4f0100a7 >>>>>>>>>>>>>>>> OrderServiceImpl.show 例程:Proxy before方法的三个参数未必都有用,根据需要选择。