执行方法:
// 执行方法Object invokeMethod(Method method, Object target)// 同上,提供方法参数Object invokeMethod(Method method, Object target, Object... args)// 取消 Java 权限检查 。以便后续执行该私有方法void makeAccessible(Method method)// 取消 Java 权限检查 。以便后续执行私有构造方法void makeAccessible(Constructor<?> ctor)
获取字段:
// 在类中查找指定属性Field findField(Class<?> clazz, String name)// 同上,多提供了属性的类型Field findField(Class<?> clazz, String name, Class<?> type)// 是否为一个 "public static final" 属性boolean isPublicStaticFinal(Field field)
设置字段:
// 获取 target 对象的 field 属性值Object getField(Field field, Object target)// 设置 target 对象的 field 属性值,值为 valuevoid setField(Field field, Object target, Object value)// 同类对象属性对等赋值void shallowCopyFieldState(Object src, Object dest)// 取消 Java 的权限控制检查 。以便后续读写该私有属性void makeAccessible(Field field)// 对类的每个属性执行 callbackvoid doWithFields(Class<?> clazz, ReflectionUtils.FieldCallback fc)// 同上,多了个属性过滤功能 。void doWithFields(Class<?> clazz, ReflectionUtils.FieldCallback fc,ReflectionUtils.FieldFilter ff)// 同上,但不包括继承而来的属性void doWithLocalFields(Class<?> clazz, ReflectionUtils.FieldCallback fc)
判断代理类型:
// 判断是不是 Spring 代理对象boolean isAopProxy()// 判断是不是 jdk 动态代理对象isJdkDynamicProxy()// 判断是不是 CGLIB 代理对象boolean isCglibProxy()
获取被代理对象的 class:
// 获取被代理的目标 classClass<?> getTargetClass()
3.AopContext
获取当前对象的代理对象:
Object currentProxy()
【SpringBoot内置工具类,告别瞎写工具类了】
经验总结扩展阅读
- python渗透测试入门——基础的网络编程工具
- 之四 2流高手速成记:SpringBoot整合redis及mongodb
- Springboot JSON 转换:Jackson篇
- SpringBoot整合ES+Kibana
- 手机截图怎么用(手机最强的截图工具)
- SpringBoot框架SpEL表达式注入漏洞复现与原理分析
- 手写自定义springboot-starter,感受框架的魅力和原理
- 一键上手时下最火AI作画工具
- 一 JPA入门学习集合springboot
- 关于Springboot启动报错 Whitelabel Error Page: This application has no explicit mapping