Proxy 可以对目标对象的读取、函数等操作进行拦截,然后进行操作处理。它不直接操作函数对象,而是像代理模式,通过对象的代理对对象进行操作,在进行这些操作时,可以增加一些需要的额外操作 基本用法 let target = { name: 'Tom', age: 24 } let header = { ...
分类:
其他好文 时间:
2020-07-26 15:30:49
阅读次数:
69
<script type="text/javascript"> let target = { name:"小明", age: 15 } let handler = { get(target, propKey, receive){ if(propKey in target){ console.log( ...
分类:
其他好文 时间:
2020-07-26 15:07:45
阅读次数:
55
Object.defineProperty() 和 ES2015 中新增的 Proxy 对象,会经常用来做数据劫持. 数据劫持: 在访问或者修改对象的某个属性时,通过一段代码拦截这个行为,进行额外的操作或者修改返回结果.数据劫持最典型的应用 双向的数据绑定(一个常用的面试题), Vue 2.x 利用 ...
分类:
其他好文 时间:
2020-07-26 00:24:02
阅读次数:
60
w={"navigator":"hehe"} var handler = { get(target, key,receiver){ console.log("target",target,receiver); return Reflect.has(target, key) ? Reflect.get ...
分类:
Web程序 时间:
2020-07-21 09:39:35
阅读次数:
96
背景 项目中为了统一管理项目的配置,比如接口地址,操作类别等信息,需要一个统一的配置管理中心,类似nacos。 我根据项目的需求写了一套分布式配置中心,测试无误后,改为单体应用并耦合到项目中。项目中使用配置文件多是取配置文件(applicatoion.yml)的值,使用@Value获取,为了秉持非侵 ...
分类:
编程语言 时间:
2020-07-19 17:55:07
阅读次数:
293
获取泛型信息 反射操作泛型 代码练习 import com.exception.demo01.Test; import java.lang.reflect.Method; import java.lang.reflect.ParameterizedType; import java.lang.ref ...
分类:
其他好文 时间:
2020-07-18 00:52:49
阅读次数:
68
反射操作注解获得注解信息 练习:ORM 代码练习 import java.lang.annotation.*; import java.lang.reflect.Field; //练习反射操作注解 public class Test12 { public static void main(Strin ...
分类:
其他好文 时间:
2020-07-18 00:40:31
阅读次数:
78
动态代理 package test; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; //被代理类接口 interface Buy ...
分类:
其他好文 时间:
2020-07-16 21:56:05
阅读次数:
67
基本知识:JDK动态代理是java.lang.reflect.*包提供的方式,它必须借助一个接口才能生成代理对象. 步骤: 1、首先建一个接口类,并提供一个实现类: public interface ISubject { public int add(int a, int b); } public ...
分类:
编程语言 时间:
2020-07-14 01:03:22
阅读次数:
100
此处的FieldUtils来自org.apache.commons.lang3.reflect包,实际使用中他比单纯使用jdk中的api要方便的多:一是代码两少,二是提供一些额外的功能。原则就是,有轮子就用轮子,没必要自己造轮子,尤其是一些工具类,像common包里的这些工具类。 一 获取父类的属性 ...
分类:
其他好文 时间:
2020-07-09 00:54:21
阅读次数:
69