1、
实现相同接口,这是面向接口编程,提高代码的可扩展性、降代码的低耦合性,便于代理测试,不需要修改主程序代码,只需要修改config.properties文件。
例如,视频中的例子,- InputStream ips = AopFrameworkTest.class.getResourceAsStream("config.properties");
- Object bean = new BeanFactory(ips).getBean("xxx");
复制代码 我要用代理,则注释掉#xxx=java.util.ArrayList,不用代理时,启用xxx=java.util.ArrayList,而注释掉#xxx=com.itheima.zhangxiaoxiang.aopframework.ProxyFactoryBean- xxx=java.util.ArrayList
- #xxx=com.itheima.zhangxiaoxiang.aopframework.ProxyFactoryBean
- xxx.advice=com.itheima.zhangxiaoxiang.MyAdvice
- xxx.target=java.util.ArrayList
复制代码 2、代理中的InvocationHandler是接口,构造代理类时第三个参数对象类实现此接口中的invoke方法,此方法invoke中传入目标类的对象,从而实现代理功能
代理类确实比较难,我昨晚看了两边,边看边敲代码才理解一下。你也得自己照着视频,便暂停边敲代码,一句话、一行代码去思考,才能更好的理解。 |