摘要:
SpringAOP底层默认使用的JDK动态代理,但是同时也支持cglib动态代理。需要导入cglib的jar以及在Spring的配置文件中开启Cglib动态代理 阅读全文
摘要:
①导入cglib相关jar包 ②声明真实对象和真实方法 ③创建类并声明方法完成扩展代码的声明 ④使用Cglib提供的方法获取代理对象 ⑤使用代理对象完成功能处理 阅读全文
摘要:
动态代理的特点: 代理对象和代理方法是动态生成的。底层流程和静态代理一致 动态代理的种类: 动态代理既然代理对象和代理方法是动态生成的,为了便于用户的调用,要求代理方法和真实方法的方法名,形参,返回值必须保持一致,具体实现如下: ①jdk动态代理(官方提供): 原则:真实对象和代理对象实现相同的接口 阅读全文
摘要:
① 切点是某包某类的无参数的方法: 示例: execution(* com.bjsxt.service.impl.Student.test()) ② 切点是某包某类带有参数的方法 示例: execution(* com.bjsxt.service.impl.Student.test(String,i 阅读全文
摘要:
代理设计模式的概念: 将对某个功能的调用以及使用的代码封装起来,避免调用方式以及使用代码的直接 暴露。 代理设计模式的好处: ①简化代码的使用流程 ②保护真实的方法的调用方式 代理设计模式的种类: ①静态代理 ②动态代理 [1] 静态代理 相关概念: 真实对象:要进行功能扩展的对象 真实方法:要进行 阅读全文
摘要:
注意: SpringAOP的注解方式实现是基于AspectJ方式的。 SchemaBased方式是没有的。 使用: ① 必须在applicationcontext.xml文件中声明注解的使用路径,方便Spring容器对象的扫描,提升扫描效率。 示例: AOP的注解: ① @Component 作用: 阅读全文