- 静态代理的实现步骤
- 书写目标类
- 书写代理类实现和目标类相同的接口和方法
- 调用目标类的方法
- 解决了核心代码和其它代码比如事务控制的耦合问题
- 静态代理的问题
- 解决不了代码冗长问题
- SpringAOP的编程步骤
- 书写目标类
- 书写功能增强类实现MethodInteceptor接口
- 切入点和组装
- SpringAOP的优点
- 解决了代码的耦合和冗长问题
- 标签属性解释
- bean将class为某个全类名的类创建类的权利转义给spring工厂,通过.getBean("id")调用
- aop:config书写动态代理的内容
- aop:pointcut是书写对应的切入点,写切入点的id和对应的expression表达式
- aop:advisor是组装切入点和功能增强类的:
- pointcut-ref指向切入点id
- advisor-ref指向功能增强类的id
- MethodInterceptor接口的作用
- 单纯在aop学习的初期这里就是指书写功能增强类的时候需要实现的接口.这个接口的invoke方法里的参数就是传过来的对象
- 解释如下切入点表达式的区别
-
-
Execution()精确到方法声明的表达式
-
Within()只精确到类的表达式
- @annotation()只要是类中存在对应的标注的方法都符合要求
-
-
- 关于标注表达式的使用
- 简单的说一下标注.:标注就是起到了一种标记的作用
- 这里面一般来说自定义一个标注就是实现一个软接口即可
- 比如 public @interface hh(){}这就是一个简单的标注
- 之后只需要在需要被动态生成代理类的里面去书写标注即可
- 这里面一般来说自定义一个标注就是实现一个软接口即可
- 简单的说一下标注.:标注就是起到了一种标记的作用