CN117149164A - 一种基于领域驱动设计加载实体类的方法及系统 - Google Patents

一种基于领域驱动设计加载实体类的方法及系统 Download PDF

Info

Publication number
CN117149164A
CN117149164A CN202311107945.9A CN202311107945A CN117149164A CN 117149164 A CN117149164 A CN 117149164A CN 202311107945 A CN202311107945 A CN 202311107945A CN 117149164 A CN117149164 A CN 117149164A
Authority
CN
China
Prior art keywords
class
entity
static code
code block
static
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202311107945.9A
Other languages
English (en)
Other versions
CN117149164B (zh
Inventor
陈啟铭
吕火生
孔令超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gongqing City Zhongtaolian Supply Chain Service Co ltd
Lin Zhoujia Home Network Technology Co ltd
Linzhou Lilijia Supply Chain Service Co ltd
Foshan Zhongtaolian Supply Chain Service Co Ltd
Tibet Zhongtaolian Supply Chain Service Co Ltd
Original Assignee
Gongqing City Zhongtaolian Supply Chain Service Co ltd
Lin Zhoujia Home Network Technology Co ltd
Linzhou Lilijia Supply Chain Service Co ltd
Foshan Zhongtaolian Supply Chain Service Co Ltd
Tibet Zhongtaolian Supply Chain Service Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gongqing City Zhongtaolian Supply Chain Service Co ltd, Lin Zhoujia Home Network Technology Co ltd, Linzhou Lilijia Supply Chain Service Co ltd, Foshan Zhongtaolian Supply Chain Service Co Ltd, Tibet Zhongtaolian Supply Chain Service Co Ltd filed Critical Gongqing City Zhongtaolian Supply Chain Service Co ltd
Priority to CN202311107945.9A priority Critical patent/CN117149164B/zh
Publication of CN117149164A publication Critical patent/CN117149164A/zh
Application granted granted Critical
Publication of CN117149164B publication Critical patent/CN117149164B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明涉及领域驱动设计技术领域,尤其涉及一种基于领域驱动设计加载实体类的方法及系统,其方法包括启动应用前,自动扫描符合预设条件的实体类,按模板生成类A,由类A的静态代码块创建符合预设条件的实体类的实例;启动应用时,将类A交给Spring框架生产对应的Bean对象;执行类A的静态代码块的内容;触发创建类A的静态代码块里各个实体类的实例,完成各个实体类的静态代码块初始化;判断Spring框架初始化是否发生异常,如果Spring框架初始化没有发生异常,则应用启动成功,应用正常启动后,当再次创建实体类的实例时,静态代码块无需再次执行。本发明能提升应用响应请求速度,提高应用响应请求的成功率,降低服务器宕机的风险。

Description

一种基于领域驱动设计加载实体类的方法及系统
技术领域
本发明涉及领域驱动技术领域,尤其涉及一种基于领域驱动设计加载实体类的方法及系统。
背景技术
领域驱动设计是一种基于模型驱动的软件设计方式。它以领域为核心,分析领域中的问题,通过建立一个领域模型来有效的解决领域中的核心的复杂问题。领域模型有四种模式,分别为失血模型、贫血模型、充血模型、胀血模型这四种,其中:充血模型有属性的setter和getter方法。聚合了对应领域范畴的业务领域行为,包含领域对象的状态发生的变化。由于依赖repository,在业务领域行为执行过程中也负责数据的持久化存储。
目前,陶瓷产业数字化平台基于领域驱动设计的充血模型定义实体类,每个实体类包含大量的静态代码块和静态变量,用于完成对应的逻辑功能。按照默认的类加载方式,这些实体类是要在使用时才会进行初始化,如果是第一次加载实体类,就会先执行静态代码块和静态变量的初始化,这会导致应用第一次响应请求缓慢。如果是高并发条件,多个线程执行初始化操作,会引起内存飙升,导致应用响应失败,甚至服务器宕机。
发明内容
本发明的目的在于提出一种基于领域驱动设计加载实体类的方法及系统,以解决技术背景中提及的不足之处。
为达此目的,本发明采用以下技术方案:
一种基于领域驱动设计加载实体类的方法,包括以下步骤:
S1、启动应用前,自动扫描符合预设条件的实体类,按模板生成类A,由类A的静态代码块创建符合预设条件的实体类的实例;
S2、启动应用时,将类A交给Spring框架生产对应的Bean对象;
S3、Spring框架进行初始化,在生产类A的Bean对象时,执行类A的静态代码块的内容;
S4、触发创建类A的静态代码块里各个实体类的实例,完成各个实体类的静态代码块初始化;
S5、判断Spring框架初始化是否发生异常,如果Spring框架初始化发生异常,则应用启动失败,反馈失败信息;如果Spring框架初始化没有发生异常,则应用启动成功,应用正常启动后,当再次创建实体类的实例时,静态代码块无需再次执行。
优选的,在S1中,具体包括以下步骤:
S11、建立两个java文件,分别定义为类A和工具方法B,在类A内填写特定的注释文本;
S12、自定义一个模板,在该模板内写入静态代码块,其中静态代码块包含静态变量;
S13、工具方法B采用递归方式获取指定的文件夹路径下,符合预设条件的实体类的全限定名;
S14、将符合条件的实体类的全限定名和模板内的静态代码块进行结合,生成新的静态代码块,并填充到类A内特定的注释文本的下一行,创建出实体类的实例。
优选的,在S1中,所述代码生成程序还包括以下步骤:
S15、当第一次加载符合预设条件的实体类时,先执行符合预设条件的实体类的父类的静态代码块和静态变量初始化,再执行符合预设条件的实体类的子类的静态代码块和静态变量初始化;
S16、当新增符合预设条件的实体类时,则重复S13,工具方法B以全量的方式重新生成新的静态代码块,新的静态代码块会覆盖上一次生成的静态代码块,填充到类A内特定的注释文本的下一行,创建出新的实体类的实例。
优选的,在S13中,所述符合预设条件的实体类的全限定名,具体为符合以下三种条件的其中一种条件的实体类的全限定名:
(1)使用了@Table注解的实体类;
(2)自定义的领域驱动基类及其子类;
(3)自定义的vo基类及其子类。
优选的,在S13中,所述将符合条件的实体类的全限定名和模板内的静态代码块进行结合,具体为:
将实体类的全限定名替换静态代码块内的静态变量。
一种基于领域驱动设计加载实体类的系统,采用上述所述的一种基于领域驱动设计加载实体类的方法,包括:
准备模块,用于启动应用前,自动扫描符合预设条件的实体类,按模板生成类A,由类A的静态代码块创建符合预设条件的实体类的实例;
交付模块,用于启动应用时,将类A交给Spring框架生产对应的Bean对象;
初始化模块,用于Spring框架进行初始化,在生产类A的Bean对象时,执行类A的静态代码块的内容;
触发模块,用于触发创建类A的静态代码块里各个实体类的实例,完成各个实体类的静态代码块初始化;
判断模块,用于判断Spring框架初始化是否发生异常,如果Spring框架初始化发生异常,则应用启动失败,反馈失败信息;如果Spring框架初始化没有发生异常,则应用启动成功,应用正常启动后,当再次创建实体类的实例时,静态代码块无需再次执行。
优选的,所述准备模块包括:
建立子模块,用于建立两个java文件,分别定义为类A和工具方法B,在类A内填写特定的注释文本;
自定义子模块,用于自定义一个模板,在该模板内写入静态代码块,其中静态代码块包含静态变量;
获取子模块,用于工具方法B采用递归方式获取指定的文件夹路径下,符合预设条件的实体类的全限定名;
创建子模块,用于将符合条件的实体类的全限定名和模板内的静态代码块进行结合,生成新的静态代码块,并填充到类A内特定的注释文本的下一行,创建出实体类的实例。
优选的,所述准备模块还包括:
首次子模块,用于当第一次加载符合预设条件的实体类时,先执行符合预设条件的实体类的父类的静态代码块和静态变量初始化,再执行符合预设条件的实体类的子类的静态代码块和静态变量初始化;
新增子模块,用于当新增符合预设条件的实体类时,则重复获取子模块,工具方法B以全量的方式重新生成新的静态代码块,新的静态代码块会覆盖上一次生成的静态代码块,填充到类A内特定的注释文本的下一行,创建出新的实体类的实例。
优选的,所述准备模块还包括条件子模块,所述条件子模块用于限定以下条件:
(1)使用了@Table注解的实体类;
(2)自定义的领域驱动基类及其子类;
(3)自定义的vo基类及其子类。
优选的,所述准备模块还包括条件子模块,所述条件子模块用于将实体类的全限定名替换静态代码块内的静态变量。
上述技术方案中的一个技术方案具有以下有益效果:具备将可能会引起服务器内存飙升的问题提前暴露在应用启动阶段,避免线上运行时才出现问题的优点。同时提升了应用响应请求速度,提高了应用响应请求的成功率,降低了服务器宕机的风险。
附图说明
图1是本发明一种基于领域驱动设计加载实体类的方法的流程示意图;
图2是本发明一种基于领域驱动设计加载实体类的方法的原理示意图;
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
如图1所示,一种基于领域驱动设计加载实体类的方法,包括以下步骤:
S1、启动应用前,自动扫描符合预设条件的实体类,按模板生成类A,由类A的静态代码块创建符合预设条件的实体类的实例;
S2、启动应用时,将类A交给Spring框架生产对应的Bean对象;
S3、Spring框架进行初始化,在生产类A的Bean对象时,执行类A的静态代码块的内容;
S4、触发创建类A的静态代码块里各个实体类的实例,完成各个实体类的静态代码块初始化;
S5、判断Spring框架初始化是否发生异常,如果Spring框架初始化发生异常,则应用启动失败,反馈失败信息;如果Spring框架初始化没有发生异常,则应用启动成功,应用正常启动后,当再次创建实体类的实例时,静态代码块无需再次执行。
目前,JVM规范则严格规定了以下几种情况必须立即对类进行初始化,如果类没有进行过初始化,则需要先触发其初始化。
(1)创建类的实例;
(2)访问类的静态变量;
(3)访问类的静态方法;
(4)反射;
(5)初始化一个类的子类(会首先初始化子类的父类);
(6)虚拟机启动时,定义了main()方法的那个类。
如果JVM中类是第一次加载:
1)先执行父类的静态代码块和静态变量初始化,并且静态代码块和静态变量的执行顺序只跟代码中出现的顺序有关;
2)执行子类的静态代码块和静态变量初始化,并且静态代码块和静态变量的执行顺序只跟代码中出现的顺序有关;
3)执行父类的代码块;
4)执行父类的实例变量初始化;
5)执行父类的构造函数;
6)执行子类的代码块;
7)执行子类的实例变量初始化;
8)执行子类的构造函数;
如果类已经被加载:
则静态代码块和静态变量就不用重复执行,再创建类对象时,只执行与实例相关的代码块、变量初始化和构造方法。
已知Spring框架的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。由于产生这个Bean对象的方法,Spring框架只会调用一次,随后Spring将这个Bean对象放在自己的IOC容器中。
通过上述的现有技术,如果按照默认的类加载方式,这些实体类是要在使用时才会进行初始化,如果是第一次加载实体类,就会先执行静态代码块和静态变量的初始化,这会导致应用第一次响应请求缓慢。如果是高并发条件,多个线程执行初始化操作,会引起内存飙升,导致应用响应失败,甚至服务器宕机。
因此本申请提出一种基于领域驱动设计加载实体类的方法,将可能会引起服务器内存飙升的问题提前暴露在应用启动阶段,避免线上运行时才出现问题。以解决实现领域驱动设计的充血模型的实体类,初始化大量静态代码块和静态变量时,会引起服务器内存飙升,导致应用响应失败,甚至服务器宕机的问题。同时提升了应用响应请求速度,提高了应用响应请求的成功率,降低了服务器宕机的风险。
更进一步的说明,在S1中,具体包括以下步骤:
S11、建立两个java文件,分别定义为类A和工具方法B,在类A内填写特定的注释文本;
S12、自定义一个模板,在该模板内写入静态代码块,其中静态代码块包含静态变量;
S13、工具方法B采用递归方式获取指定的文件夹路径下,符合预设条件的实体类的全限定名;
S14、将符合条件的实体类的全限定名和模板内的静态代码块进行结合,生成新的静态代码块,并填充到类A内特定的注释文本的下一行,创建出实体类的实例。
更进一步的说明,在S1中,所述代码生成程序还包括以下步骤:
S15、当第一次加载符合预设条件的实体类时,先执行符合预设条件的实体类的父类的静态代码块和静态变量初始化,再执行符合预设条件的实体类的子类的静态代码块和静态变量初始化;
S16、当新增符合预设条件的实体类时,则重复S13,工具方法B以全量的方式重新生成新的静态代码块,新的静态代码块会覆盖上一次生成的静态代码块,填充到类A内特定的注释文本的下一行,创建出新的实体类的实例。
更进一步的说明,在S13中,所述符合预设条件的实体类的全限定名,具体为符合以下三种条件的其中一种条件的实体类的全限定名:
(1)使用了@Table注解的实体类;
(2)自定义的领域驱动基类及其子类;
(3)自定义的vo基类及其子类。
更进一步的说明,在S13中,所述将符合条件的实体类的全限定名和模板内的静态代码块进行结合,具体为:
将实体类的全限定名替换静态代码块内的静态变量。
如图2所示,在其中一个实施例中,模板内的静态代码块为:
static{
<#list clazzNames as clazzName>
new${clazzName}();
</#list>
}
其中clazzNames表示实体类的全限定名,clazzNames表示静态变量;
接着,将符合条件的实体类的全限定名和模板内的静态代码块进行结合,生成新的静态代码块为以下:
static{
new a.b.c.AA();
new a.b.c.BB();
new a.b.d.AB();
new a.b.d.BA();
}
随后,将新的静态代码块填充到类A内特定的注释文本的下一行:
类A{
……
//特定的注释文本
static{
new a.b.c.AA();
new a.b.c.BB();
new a.b.d.AB();
new a.b.d.BA();
}
最后,使用Spring框架提供的@Bean注解,将类A注册为一个SpringBean。
一种基于领域驱动设计加载实体类的系统,采用上述所述的一种基于领域驱动设计加载实体类的方法,包括:
准备模块,用于启动应用前,自动扫描符合预设条件的实体类,按模板生成类A,由类A的静态代码块创建符合预设条件的实体类的实例;
交付模块,用于启动应用时,将类A交给Spring框架生产对应的Bean对象;
初始化模块,用于Spring框架进行初始化,在生产类A的Bean对象时,执行类A的静态代码块的内容;
触发模块,用于触发创建类A的静态代码块里各个实体类的实例,完成各个实体类的静态代码块初始化;
判断模块,用于判断Spring框架初始化是否发生异常,如果Spring框架初始化发生异常,则应用启动失败,反馈失败信息;如果Spring框架初始化没有发生异常,则应用启动成功,应用正常启动后,当再次创建实体类的实例时,静态代码块无需再次执行。
更进一步的说明,所述准备模块包括:
建立子模块,用于建立两个java文件,分别定义为类A和工具方法B,在类A内填写特定的注释文本;
自定义子模块,用于自定义一个模板,在该模板内写入静态代码块,其中静态代码块包含静态变量;
获取子模块,用于工具方法B采用递归方式获取指定的文件夹路径下,符合预设条件的实体类的全限定名;
创建子模块,用于将符合条件的实体类的全限定名和模板内的静态代码块进行结合,生成新的静态代码块,并填充到类A内特定的注释文本的下一行,创建出实体类的实例。
更进一步的说明,所述准备模块还包括:
首次子模块,用于当第一次加载符合预设条件的实体类时,先执行符合预设条件的实体类的父类的静态代码块和静态变量初始化,再执行符合预设条件的实体类的子类的静态代码块和静态变量初始化;
新增子模块,用于当新增符合预设条件的实体类时,则重复获取子模块,工具方法B以全量的方式重新生成新的静态代码块,新的静态代码块会覆盖上一次生成的静态代码块,填充到类A内特定的注释文本的下一行,创建出新的实体类的实例。
更进一步的说明,所述准备模块还包括条件子模块,所述条件子模块用于限定以下条件:
(1)使用了@Table注解的实体类;
(2)自定义的领域驱动基类及其子类;
(3)自定义的vo基类及其子类。
更进一步的说明,所述准备模块还包括条件子模块,所述条件子模块用于将实体类的全限定名替换静态代码块内的静态变量。
以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些等同的变型或替换均包含在本申请权利要求所限定的范围内。

Claims (10)

1.一种基于领域驱动设计加载实体类的方法,其特征在于,包括以下步骤:
S1、启动应用前,自动扫描符合预设条件的实体类,按模板生成类A,由类A的静态代码块创建符合预设条件的实体类的实例;
S2、启动应用时,将类A交给Spring框架生产对应的Bean对象;
S3、Spring框架进行初始化,在生产类A的Bean对象时,执行类A的静态代码块的内容;
S4、触发创建类A的静态代码块里各个实体类的实例,完成各个实体类的静态代码块初始化;
S5、判断Spring框架初始化是否发生异常,如果Spring框架初始化发生异常,则应用启动失败,反馈失败信息;如果Spring框架初始化没有发生异常,则应用启动成功,应用正常启动后,当再次创建实体类的实例时,静态代码块无需再次执行。
2.根据权利要求1所述的一种基于领域驱动设计加载实体类的方法,其特征在于,在S1中,具体包括以下步骤:
S11、建立两个java文件,分别定义为类A和工具方法B,在类A内填写特定的注释文本;
S12、自定义一个模板,在该模板内写入静态代码块,其中静态代码块包含静态变量;
S13、工具方法B采用递归方式获取指定的文件夹路径下,符合预设条件的实体类的全限定名;
S14、将符合条件的实体类的全限定名和模板内的静态代码块进行结合,生成新的静态代码块,并填充到类A内特定的注释文本的下一行,创建出实体类的实例。
3.根据权利要求2所述的一种基于领域驱动设计加载实体类的方法,其特征在于,在S1中,所述代码生成程序还包括以下步骤:
S15、当第一次加载符合预设条件的实体类时,先执行符合预设条件的实体类的父类的静态代码块和静态变量初始化,再执行符合预设条件的实体类的子类的静态代码块和静态变量初始化;
S16、当新增符合预设条件的实体类时,则重复S13,工具方法B以全量的方式重新生成新的静态代码块,新的静态代码块会覆盖上一次生成的静态代码块,填充到类A内特定的注释文本的下一行,创建出新的实体类的实例。
4.根据权利要求2所述的一种基于领域驱动设计加载实体类的方法,其特征在于,在S13中,所述符合预设条件的实体类的全限定名,具体为符合以下三种条件的其中一种条件的实体类的全限定名:
(1)使用了@Table注解的实体类;
(2)自定义的领域驱动基类及其子类;
(3)自定义的vo基类及其子类。
5.根据权利要求2所述的一种基于领域驱动设计加载实体类的方法,其特征在于,在S13中,所述将符合条件的实体类的全限定名和模板内的静态代码块进行结合,具体为:
将实体类的全限定名替换静态代码块内的静态变量。
6.一种基于领域驱动设计加载实体类的系统,其特征在于,采用权利要求1-5任一项所述的一种基于领域驱动设计加载实体类的方法,包括:
准备模块,用于启动应用前,自动扫描符合预设条件的实体类,按模板生成类A,由类A的静态代码块创建符合预设条件的实体类的实例;
交付模块,用于启动应用时,将类A交给Spring框架生产对应的Bean对象;
初始化模块,用于Spring框架进行初始化,在生产类A的Bean对象时,执行类A的静态代码块的内容;
触发模块,用于触发创建类A的静态代码块里各个实体类的实例,完成各个实体类的静态代码块初始化;
判断模块,用于判断Spring框架初始化是否发生异常,如果Spring框架初始化发生异常,则应用启动失败,反馈失败信息;如果Spring框架初始化没有发生异常,则应用启动成功,应用正常启动后,当再次创建实体类的实例时,静态代码块无需再次执行。
7.根据权利要求6所述的一种基于领域驱动设计加载实体类的系统,其特征在于,所述准备模块包括:
建立子模块,用于建立两个java文件,分别定义为类A和工具方法B,在类A内填写特定的注释文本;
自定义子模块,用于自定义一个模板,在该模板内写入静态代码块,其中静态代码块包含静态变量;
获取子模块,用于工具方法B采用递归方式获取指定的文件夹路径下,符合预设条件的实体类的全限定名;
创建子模块,用于将符合条件的实体类的全限定名和模板内的静态代码块进行结合,生成新的静态代码块,并填充到类A内特定的注释文本的下一行,创建出实体类的实例。
8.根据权利要求7所述的一种基于领域驱动设计加载实体类的系统,其特征在于,所述准备模块还包括:
首次子模块,用于当第一次加载符合预设条件的实体类时,先执行符合预设条件的实体类的父类的静态代码块和静态变量初始化,再执行符合预设条件的实体类的子类的静态代码块和静态变量初始化;
新增子模块,用于当新增符合预设条件的实体类时,则重复获取子模块,工具方法B以全量的方式重新生成新的静态代码块,新的静态代码块会覆盖上一次生成的静态代码块,填充到类A内特定的注释文本的下一行,创建出新的实体类的实例。
9.根据权利要求8所述的一种基于领域驱动设计加载实体类的系统,其特征在于,所述准备模块还包括条件子模块,所述条件子模块用于限定以下条件:
(1)使用了@Table注解的实体类;
(2)自定义的领域驱动基类及其子类;
(3)自定义的vo基类及其子类。
10.根据权利要求9所述的一种基于领域驱动设计加载实体类的系统,其特征在于,所述准备模块还包括条件子模块,所述条件子模块用于将实体类的全限定名替换静态代码块内的静态变量。
CN202311107945.9A 2023-08-30 2023-08-30 一种基于领域驱动设计加载实体类的方法及系统 Active CN117149164B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311107945.9A CN117149164B (zh) 2023-08-30 2023-08-30 一种基于领域驱动设计加载实体类的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311107945.9A CN117149164B (zh) 2023-08-30 2023-08-30 一种基于领域驱动设计加载实体类的方法及系统

Publications (2)

Publication Number Publication Date
CN117149164A true CN117149164A (zh) 2023-12-01
CN117149164B CN117149164B (zh) 2024-02-23

Family

ID=88903904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311107945.9A Active CN117149164B (zh) 2023-08-30 2023-08-30 一种基于领域驱动设计加载实体类的方法及系统

Country Status (1)

Country Link
CN (1) CN117149164B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102270138A (zh) * 2011-08-15 2011-12-07 青岛海信传媒网络技术有限公司 实体对象的创建方法和实体对象创建装置
US20140344792A1 (en) * 2013-05-16 2014-11-20 Sap Ag Dynamic bytecode modification of classes and class hierarchies
US20210132959A1 (en) * 2019-10-31 2021-05-06 Red Hat, Inc. Bootstrapping frameworks from a generated static initialization method for faster booting
CN115576602A (zh) * 2022-09-23 2023-01-06 海尔优家智能科技(北京)有限公司 一种实现实体类转换的方法、存储介质及电子装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102270138A (zh) * 2011-08-15 2011-12-07 青岛海信传媒网络技术有限公司 实体对象的创建方法和实体对象创建装置
US20140344792A1 (en) * 2013-05-16 2014-11-20 Sap Ag Dynamic bytecode modification of classes and class hierarchies
US20210132959A1 (en) * 2019-10-31 2021-05-06 Red Hat, Inc. Bootstrapping frameworks from a generated static initialization method for faster booting
CN115576602A (zh) * 2022-09-23 2023-01-06 海尔优家智能科技(北京)有限公司 一种实现实体类转换的方法、存储介质及电子装置

Also Published As

Publication number Publication date
CN117149164B (zh) 2024-02-23

Similar Documents

Publication Publication Date Title
CN110147225A (zh) 一种代码生成方法、装置及计算机设备、存储介质
WO2020186680A1 (zh) 一种建模平台接口测试方法
CN111831318A (zh) 一种自动生成代码的微服务管理系统及代码生成方法
CN110673892B (zh) 一种基于组件配置的接口统一调用方法
CN112328229A (zh) 一种快速创建Jenkins流水线的方法
CN107179982B (zh) 一种跨进程调试方法和装置
CN111414303B (zh) 一种用于脚本性能测试的辅助系统及方法
CA2503184A1 (en) Transitional resolution in a just in time environment
CN117149164B (zh) 一种基于领域驱动设计加载实体类的方法及系统
CN111049913B (zh) 数据文件的传输方法及装置、存储介质、电子设备
CN112435007A (zh) 基于Node.js的代码提交方法、装置、计算机设备及存储介质
CN1976320A (zh) 数据访问控制方法及系统
CN111240989B (zh) 接口自动化测试框架及方法
US10095564B2 (en) Systems and methods for enabling dynamic calls via filtering, grouping, and substitution mechanisms
CN1154922C (zh) 一种可扩展的自动化测试平台的测试方法
CN114253644A (zh) 下位机设备属性参数的输出方法及装置
CN116302852A (zh) 一种信息系统调用链分析及结果图形化展示方法
CN113064591A (zh) 一种wpf页面动态生成方法、系统、设备及介质
CN111930415B (zh) 一种大型软件产品的构造部署方法及装置
CN113626033B (zh) 移动端界面的修改方法及其装置、计算机终端设备和介质
CN105740067A (zh) 一种基于云计算的虚拟机分批启动方法和控制系统
CN111931259B (zh) 一种基于Revit的批量链接图纸的方法
CN111078752A (zh) 基于zorro系统的数据挖掘任务创建方法
CN111190592B (zh) 一种页面创建方法、存储介质、电子设备及系统
CN117234532A (zh) 基于表单和预定义脚本快速离线部署应用的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant