• 2024-07-04在构造方法里获取当前类的泛型
    定义publicclassMyClass<T>{privateClass<T>clazz;publicMyClass(){Typetype=this.getClass().getGenericSuperclass();if(typeinstanceofParameterizedTypeparameterizedType){if(parameterizedType.
  • 2024-06-10Java-15_反射
    文章目录1.反射(Reflection)概念1.1反射的出现背景1.2反射概述1.3Java反射机制研究及应用1.4反射相关的主要API1.5反射的优缺点2.理解Class类并获取Class实例2.1Class2.2获取Class类的实例(四种方法)2.3哪些类型可以有Class对象2.4Class类的常用方法3.类的
  • 2024-06-06.NET Core中灵活使用反射
    前言前段时间有朋友问道一个这样的问题,.NETCore中如何通过Attribute的元数据信息来调用标记的对应方法。我第一时间想到的就是通过C#反射获取带有CustomAttribute标记的类,然后通过依赖注入(DI)的方式获取对应服务的方法并通过反射动态执行类的方法,从而实现更灵活的编程方式。
  • 2024-05-29深入解析Java类加载机制:原理、过程与实践
    深入解析Java类加载机制:原理、过程与实践Java的类加载机制是Java虚拟机(JVM)运行时环境的核心组件,它决定了Java类和接口的加载、连接和初始化方式。这一机制不仅确保了应用程序的安全性和稳定性,还提供了灵活的动态加载能力,使得Java程序能够在运行时加载和使用外部类。这篇文
  • 2024-05-28Mybatis-Plus 实现 jsonb类型的数据存取
    1、自定义类型处理器importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.serializer.SerializerFeature;importorg.apache.ibatis.type.BaseTypeHandler;importorg.apache.ibatis.type.JdbcType;importorg.postgresql.util.PGobject;importjava.sql.Calla
  • 2024-05-18Spark_DLS语法:
    Spark_DLS语法:目录Spark_DLS语法:1.[Spark]-SQL2.DSL示例3.DSL解析json,csv文件1.printSchema()打印表结构2.studentDF.show(100)默认20条数据3.studentDF.show(false)某些值太长,完整打印每一列的数据4.DSL函数4.DataSource4.1csv:需要手动指定列名和类型4.2jsonparquet格式
  • 2024-05-15SpringContextUtils
    @ComponentpublicclassSpringContextUtilsimplementsApplicationContextAware,EnvironmentAware{privatestaticApplicationContextapplicationContext;privatestaticEnvironmentenvironment;@OverridepublicvoidsetApplicationContext(
  • 2024-04-22再聊解除HiddenApi限制
    炒冷饭,再聊聊大家都知晓的隐藏接口的限制解除。说明由于我们容器产品的特性,需要将应用完整的运行起来,所以必须涉及一些隐藏接口的反射调用,而突破反射限制则成为我们实现的基础。现将我们的解决方案分享给大家,一起学习。Android9.0→首次启用这个大家都知道原理了,简单巴拉
  • 2024-04-22mysql添加数据报错
    1452-Cannotaddorupdateachildrow:aforeignkeyconstraintfails('db_student_manager_web'.'s_student',CONSTRAINT'student_clazz_id_foreign'FOREIGNKEY('clazz_id)REFERENCES's_clazz'('id')
  • 2024-04-16单测 填充测试pojo工具类
    直接上importcn.hutool.core.date.DateTime;importcn.hutool.core.util.RandomUtil;importcn.hutool.core.util.ReflectUtil;importcom.google.common.collect.Lists;importlombok.extern.slf4j.Slf4j;importjava.lang.reflect.*;importjava.util.*;/***des
  • 2024-04-09手写Spring底层机制
    手写Spring底层机制IOC容器//定义BeanDefinitionMap存放beanDefinitionprivateConcurrentHashMap<String,BeanDefinition>beanDefinitionMap=newConcurrentHashMap<>();//定义singletonObjects存放单例privateConcurrentHashMap<S
  • 2024-04-08JAVA安全漫谈1-8笔记
    一.反射篇1classloader就是java的类加载器,告诉虚拟机如何加载这个类。默认情况下根据类名来加载类,类名必须是完整路径publicclassclass_init{{System.out.println("123");}static{System.out.println("456");}publicclas
  • 2024-04-08获取类属性值,当前类,父类
    publicstaticList<Field>getAllDeclaredFields(Class<?>clazz){List<Field>allFields=newArrayList<>();Class<?>superClass=clazz.getSuperclass();//获取当前类声明的所有字段Field[]declaredFields
  • 2024-04-04JAVA学习-类型信息.Class对象
         Java中的类型信息是通过Class对象来表示和获取的。Class对象是Java中的一种特殊对象,它包含了被表示的类型的信息,如名称、字段、方法、构造函数等。可以通过Class对象来获取和操作类型的相关信息。一、以下是几个常见的获取Class对象的方式:1.使用类名.class语
  • 2024-03-26再聊SPI机制
    前言去年更新了一系列和SPI相关的内容,最近因为业务需要,我又基于业务场景,实现了一版。对于什么是spi,很久之前有写过一篇文章,java之spi机制简介感兴趣的朋友可以蛮看一下需求分析用过原生jdk提供的spi的朋友,应该会知道原生jdk的spi有个缺陷,就是没法实现按需加载,因此本文的实现就
  • 2024-03-23获取 Class 对象的 3 种方法
    调用某个对象的getClass()方法Personp=newPerson();Classclazz=p.getClass();调用某个类的class属性来获取该类对应的Class对象Classclazz=Person.class;使用Class类中的forName()静态方法(最安全/性能最好)Classclazz=Class.forName("类的全路径");(最常用)
  • 2024-03-22Json泛型化处理
    importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.TypeReference;importjava.util.List;publicclassJSONCommonBuilder{/***Json泛型化处理*/publicstatic<T>BusinessCache<T>getBusinessCache(Objectobject,Clas
  • 2024-03-20fastjson记录
    参考指南fastjson:我一路向北,离开有你的季节|素十八(su18.org)Java反序列化漏洞始末(3)—fastjson-浅蓝'sblog(b1ue.cn)梅子酒の笔记本(meizjm3i.github.io)fastjson基础早期版本的fastjson的框架图fastjson功能要点:fastjson在创建一个类实例时会通过反射
  • 2024-03-16Dubbo源码解读-dubbo的SPI机制
    上篇我们介绍了Dubbbo整合Spring中的@DubboComponentScan注解源码分析,地址如下Dubbo源码解读-dubbo启动与Spring整合之@DubboComponentScan-CSDN博客    本文主要针对Dubbo的SPI机制,从dubbo源码角度解析。    DubboSPI机制,是Dubbo中比较重要的技术手段,也
  • 2024-03-13模型对象操作
    学生根据兴趣选择不同的兴趣班,其中学生和班级是多对多的关系。使用创建模型对象的方式新增数据#-*-coding:utf-8-*-#@Author:Lila#初始化django配置importosimportdjangoimportrandomos.environ.setdefault("DJANGO_SETTINGS_MODULE","blog_manager.settings"
  • 2024-03-13模型定义
    要求:学生根据兴趣选择不同的兴趣班,其中学生和班级是多对多的关系。1、完成学生和班级的模型定义2、提交代码截图。解答:`fromdjango.contrib.auth.modelsimportUserfromdjango.dbimportmodels--coding:utf-8--Author:LilaCreateyourmodelshere.classClazz(
  • 2024-01-15切点打印:被切的类名、方法名、方法参数值、方法参数类型等
    privatevoidprintMethod(JoinPointjoinPoint,Stringname)throwsNoSuchMethodException{MethodSignaturesignature=(MethodSignature)joinPoint.getSignature();Class<?>clazz=joinPoint.getTarget().getClass();Methodmethod=clazz.ge
  • 2024-01-12Spring -- IOC 手写
    .java反射Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。简单来说,反射机制指的是程序在运行时能够获取自身的信息。要想解剖一
  • 2023-12-27反射
    公共函数的调用Class<A>clazz=A.class;通过反射创建对象获取函数对象try{Methodmethod=clazz.getMethod("m1");//形参类型Objecto=clazz.newInstance();//JDK9中过时了调用空参函数Objectinvoke=method.invoke(o);//实参System.out.println("invo
  • 2023-12-26深入探讨Java反射:解析机制与应用场景
    当谈及Java编程语言的强大功能时,反射(Reflection)是一个不可忽视的特性。反射允许程序在运行时检查和操作其自身的结构,这为开发者提供了一种动态获取信息和执行操作的途径。在本篇博客中,我们将深入探讨Java反射的原理、用法以及一些实际场景中的应用。什么是反射?反射是Java的一种