Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >快速学习-Spring(AOP引入)

快速学习-Spring(AOP引入)

作者头像
cwl_java
发布于 2020-02-12 05:05:44
发布于 2020-02-12 05:05:44
46400
代码可运行
举报
文章被收录于专栏:cwl_Javacwl_Java
运行总次数:0
代码可运行

第3章 AOP前奏

3.1 提出问题

3.1.1 情景:数学计算器

  1. 要求 ① 执行加减乘除运算 ② 日志:在程序执行期间追踪正在发生的活动 ③ 验证:希望计算器只能处理正数的运算
  1. 常规实现
  1. 问题 ① 代码混乱:越来越多的非业务需求(日志和验证等)加入后,原有的业务方法急剧膨胀。每个方法在处理核心逻辑的同时还必须兼顾其他多个关注点。 ② 代码分散: 以日志需求为例,只是为了满足这个单一需求,就不得不在多个模块(方法)里多次重复相同的日志代码。如果日志需求发生变化,必须修改所有模块。

3.2 动态代理

3.2.1 动态代理的原理

代理设计模式的原理:使用一个代理将对象包装起来,然后用该代理对象取代原始对象。任何对原始对象的调用都要通过代理。代理对象决定是否以及何时将方法调用转到原始对象上。

3.2.2 动态代理的方式

  1. 基于接口实现动态代理: JDK动态代理
  2. 基于继承实现动态代理: Cglib、Javassist动态代理

3.3 数学计算器的改进

3.3.1 日志处理器

3.3.2 验证处理器

3.3.3 测试代码

3.3.4 保存生成的动态代理类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 在测试方法中加入如下代码:
 Properties properties = System.getProperties();
 properties.put("sun.misc.ProxyGenerator.saveGeneratedFiles", "true");
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/02/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
输出cglib以及jdk动态代理产生的class文件
好奇心重的小伙伴有一种知其然,亦欲知其所以然的特性,我们在spring事务应用中会接触到aop技术,而aop背后隐藏的恰恰是以jdk以及cglib为基础的动态代理技术,博主不才,将自己的学习历程记录于此,希望帮到有需求的同行,其实我们仅需要进行简单的设置,即可输出cglib以及jdk动态代理产生的class文件,然后使用jdt或者其他工具查看生成的动态代理类,以验证理论知识:
johnhuster的分享
2022/03/29
5430
Java代理模式及动态代理详解
Java的动态代理在实践中有着广泛的使用场景,比如最场景的Spring AOP、Java注解的获取、日志、用户鉴权等。本篇文章带大家了解一下代理模式、静态代理以及基于JDK原生动态代理。
程序新视界
2020/03/24
5350
Java代理模式及动态代理详解
设计模式【3.2】-- JDK动态代理源码分析有多香?
前面文章有说到代理模式:http://aphysia.cn/archives/dynamicagentdesignpattern
秦怀杂货店
2021/11/06
5530
抽丝剥茧——代理设计模
代理设计模式在生活中应该很常见了,现在各种中间商的货物代售方便了我们的生活也增加了我们生活的成本。这种生活中的中间商行为就是一种代理模式。
石的三次方
2021/01/05
2670
一文读懂 Java 动态代理,那些面试中你容易忽略的细节!
本来是打算把java代理模式给写一下的,但是整理思路的时候发现这是一个庞大的工程,我需要讲清楚什么是代理模式;
程序员小强
2021/04/14
4720
【设计模式】代理模式那些事儿:静态代理,动态代理,JDK的动态代理,cglib,Spring AOP
还记得上小学时候的这篇课文吗?这是我记忆深刻的一篇语文课文,哈哈,在这里提出来让大家也回忆一下小学的故事。
行百里er
2020/12/02
3130
【设计模式】代理模式那些事儿:静态代理,动态代理,JDK的动态代理,cglib,Spring AOP
JDK动态代理详解
JDK动态代理是代理模式的一种,且只能代理接口。spring也有动态代理,成为CGLib,现在主要来看一下JDK动态代理是如何实现的?
Liusy
2020/09/01
1.1K0
JDK动态代理详解
代理、静态、动态
为其他对象提供一种代理以控制这个对象的访问,在某些情况下一个对象不能直接访问那个对象时,代理就起到了客户端和被代理对象 (委托类) 中介作用。
张小驰出没
2021/12/06
2300
代理、静态、动态
Java 动态代理详解
动态代理在Java中有着广泛的应用,比如Spring AOP、Hibernate数据查询、测试框架的后端mock、RPC远程调用、Java注解对象获取、日志、用户鉴权、全局性异常处理、性能监控,甚至事务处理等。
小旋锋
2019/01/21
1.1K0
细说JDK动态代理的实现原理
来源:blog.csdn.net/mhmyqn/article/details/48474815
Java团长
2018/12/17
3720
java设计模式之代理模式
比较官方一点解释:为另一对象提供一个替身或者占位符,以控制对这个对象的访问,这句话看起来有一些比较难理解,那么下面我们用几个方便我们理解的场景去理解这句话;
一行Java
2022/04/06
1560
java设计模式之代理模式
Spring MVC系列-(5) AOP
AOP(Aspect-Oriented Programming,面向切面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。
码老思
2023/10/19
2170
Spring MVC系列-(5) AOP
【鼠年大吉】【设计模式自习室】详解代理模式
该系列会逐步更新于我的博客和公众号(博客见文章底部),也希望各位观众老爷能够关注我的个人公众号:后端技术漫谈,不会错过精彩好看的文章。
Rude3Knife的公众号
2020/02/19
3020
【设计模式自习室】详解代理模式
通俗的来讲,代理模式就是我们生活中常见的中介。在某些情况下,一个客户不想或者不能直接引用一个对象,此时可以通过一个称之为“代理”的第三者来实现间接引用。
蛮三刀酱
2020/02/14
4000
【设计模式自习室】详解代理模式
23天读懂23种设计模式:代理模式(结构型)
结构型模式讨论的是类和对象的结构,它采用继承机制来组合接口或实现(类结构型模式),或者通过组合一些对象实现新的功能(对象结构型模式)。
后台技术汇
2022/05/28
2190
23天读懂23种设计模式:代理模式(结构型)
Java面试集锦(一)之Spring/SpringMVC
Spring是一套为了解决企业应用开发的复杂性而创建的框架,特点是分层的架构,允许用户在不同层面使用不同的组件进行组合。同时通过IOC容器来降低耦合,简化开发。利用AOP来进行切面编程统一管理通用模块。
凯哥Java
2022/12/16
2450
Java面试集锦(一)之Spring/SpringMVC
Java进阶 | Proxy动态代理机制详解
在说Java动态代理之前,还是要说一下Jvm加载对象的过程,这个依旧是理解动态代理的基础性原理:
知了一笑
2021/07/07
1K0
Java进阶 | Proxy动态代理机制详解
【说站】java动态如何生成代理类
h:调用处理器,也就是我们上面定义的实现了InvocationHandler接口的类实例
很酷的站长
2022/11/23
6560
【说站】java动态如何生成代理类
读源码——JDK动态代理
在 java 中,动态代理算的上是底层架构的发动机。最熟悉的包括 Spring 的 aop、rpc 的实现中也都少不了它的影子。所以,从源码的角度对 jdk 实现的动态代理加以总结。
早安嵩骏
2020/08/11
3420
​面试必备java代理 万字详解!
​代理其实不仅仅是在软件开发领域,在我们的日常生活中也是时常可见。比如某p2p老板突然携款带着小姨子跑路了,可怜了下面一堆的程序员背负一身房贷,上有老下有小,程序员只能被迫去申请劳动仲裁,劳动局就会为其指派一位代理律师全权负责程序员的仲裁事宜(PS:p2p跑路仲裁拿回工资的可能性非常低,没让你把工资退回就算好的了)。那这里面就是使用了代理模式,因为在劳动仲裁这个活动中,代理律师会全权代理程序员。比如:房东要将房子出售,于是到房地产中介公司找一个中介(代理),由他来帮房东完成销售房屋,签订合同、网签、贷款过户等等事宜。
java金融
2020/05/29
4260
​面试必备java代理 万字详解!
相关推荐
输出cglib以及jdk动态代理产生的class文件
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验