第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

【學(xué)習(xí)打卡】第7天+ 反射和AOP動(dòng)態(tài)和靜態(tài)代理

標(biāo)簽:
Java

课程名称:笑傲Java面试 剖析大厂高频面试真题 秒变offer收割机

课程章节:第6章 JVM原理篇

主讲老师:求老仙

课程内容:

第6章 JVM原理篇

课程收获:

反射和AOP动态和静态代理

问题1)AOP和反射的作用?

AOP的目的就是关注点分离**,关注点分离,就是业务代码中不包含其他业务的代码,例如:订单代码,不应该把日志的代码放到业务代码中。掺杂其他功能的代码。**

反射作用:运行时获取对象的实例,方法,属性

关注点分离做的事情,本身就是领域建设和解耦合。

反射实现AOP代理,动态代理和静态代理

反射获取运行时的对象,AOP是增强对象的功能,分为静态代理和动态代理

问题2)AOP和动态代理?

Spring中的AOP是基于动态代理实现的,即 JDK动态代理和Cglib动态代理。

实现AOP的方案:

1,可以使用joinPoint方法实现(每个方面是独立的模块)

2,可以使用动态代理实现aop

3,使用Javasist,不生成中间class字节码文件,运行时候给class字节码添加功能,但是不会生成class字节码文件。

两种实现方案区别:

动态代理实现的 AOP,不是直接调用核心方法,而是调用包装的方法。

独立的切面,是直接调用核心方法,然后再调用切入方法。

独立切面:

动态代理:

问题3)如何写代理?

为什么需要这三个参数:

**ClassLoader:**被代理类和代理类,要使用相同的加载器,因为代理类和被代理类是基层了同一个接口,所以要使用相同的加载器,所以要将加载接口的加载器,作为参数传入到代理类的方法中。

**Interfaces:**可以传入多个接口,接口是用来创建代理对象的。(因为代理是通过反射实现的,所以肯定需要Class对象。这个接口就是为了创建Class对象)

**InvocationHandler:**增加某个方法,需要重写字节码,生成Class对象,调用重新增强的方法就需要invocationHander(用户仅会调用代理类的方法,用户调用的方法,就是这个invocationHandler的方法)

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消