Spring AOP入门 (二)动态代理
动态代理指的是通过一个代理对象来创建需要的业务对象,然后在这个代理对象中统一进行各种需求的处理。
1. 写一个类实现相应的InvocationHandler接口。
这里相当于通过LogProxy里面的方法创建了一个IUserDao userDynamicDao.
此时我们在service层就不再使用userDao,而是userDynamicDao.
3. 修改UserService.java:@Overridepublic Object invoke(Object proxy, Method method, Object[] args)throws Throwable {//Logger.info("进行了相应的操作");if(method.isAnnotationPresent(LogInfo.class)){System.out.println(method.getAnnotation(LogInfo.class).value());}System.out.println("method name= "+method.getName());Object obj=method.invoke(target, args);return obj;}
最后执行list方法,便会看到
所有用户都被查询了 by @LogInfo
method name= list