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

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

java反射之動(dòng)態(tài)代理學(xué)習(xí)筆記

標(biāo)簽:
Java

动态代理概述:
代理:本来自己做的事情,请别人来做,被请的人就是代理对象;
举例:春节回家买票让人代理买
动态代理:在程序运行过程中产生的这个对象,而程序运行过程中产生对象其实就是我们刚才反射讲解的内容,所以动态代理其实就是通过反射来生成一个代理。
在java 中java.lang.reflect包提供一个proxy类和一个invocationHandler接口,通过使用这个类和接口就可以生成动态代理对象,JDk提供代理只能针对接口做代理,我们有更强大的代理cglib、proxy类中的方法创建动态代理对象。
public static Object newProxyInstance(ClassLoader loader,Class<?>[] interfaces, InvocationHandler h)

测试方法一

/**     * @param args     */    public static void main(String[] args) {        /*UserImp ui = new UserImp();        ui.add();        ui.delete();        System.out.println("-------------------------------");*/        /*         * public static Object newProxyInstance(ClassLoader loader,Class<?>[] interfaces,         * InvocationHandler h)         */        /*MyInvocationHandler m = new MyInvocationHandler(ui);        User u = (User)Proxy.newProxyInstance(ui.getClass().getClassLoader(), ui.getClass().getInterfaces(), m);        u.add();        u.delete();*/        StudentImp si = new StudentImp();        si.login();        si.submit();        System.out.println("-------------------------------");        MyInvocationHandler m = new MyInvocationHandler(si);        Student s = (Student)Proxy.newProxyInstance(si.getClass().getClassLoader(), si.getClass().getInterfaces(), m);        s.login();        s.submit();    }

方法二

public interface User {    public void add();    public void delete();}

方法三

public class UserImp implements User {    @Override    public void add() {        //System.out.println("权限校验");        System.out.println("添加功能");        //System.out.println("日志记录");    }    @Override    public void delete() {        //System.out.println("权限校验");        System.out.println("删除功能");        //System.out.println("日志记录");    }}

方法四

public class StudentImp implements Student {    @Override    public void login() {        System.out.println("登录");    }    @Override    public void submit() {        System.out.println("提交");    }}

方法五

public interface Student {    public void login();    public void submit();}

方法六

import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;public class MyInvocationHandler implements InvocationHandler {    private Object target;    public MyInvocationHandler(Object target) {        this.target = target;    }    @Override    public Object invoke(Object proxy, Method method, Object[] args)            throws Throwable {        System.out.println("权限校验");        method.invoke(target, args);                    //执行被代理target对象的方法        System.out.println("日志记录");        return null;    }}

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

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

評(píng)論

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

正在加載中
移動(dòng)開發(fā)工程師
手記
粉絲
39
獲贊與收藏
245

關(guān)注作者,訂閱最新文章

閱讀免費(fèi)教程

  • 推薦
  • 評(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
提交
取消