CN117520021B - 一种Java系统消息推送方法、装置、设备及介质 - Google Patents
一种Java系统消息推送方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117520021B CN117520021B CN202410024034.8A CN202410024034A CN117520021B CN 117520021 B CN117520021 B CN 117520021B CN 202410024034 A CN202410024034 A CN 202410024034A CN 117520021 B CN117520021 B CN 117520021B
- Authority
- CN
- China
- Prior art keywords
- event
- message content
- target
- name
- related information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 174
- 230000000007 visual effect Effects 0.000 claims abstract description 73
- 238000009877 rendering Methods 0.000 claims abstract description 20
- 230000015654 memory Effects 0.000 claims description 20
- 238000012986 modification Methods 0.000 claims description 18
- 230000004048 modification Effects 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 11
- 230000007246 mechanism Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 28
- 238000004891 communication Methods 0.000 description 8
- 230000006854 communication Effects 0.000 description 7
- 238000011161 development Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种Java系统消息推送方法、装置、设备及介质,涉及信息技术领域,用于解决Java系统消息推送过程中配置复杂的问题。该方法包括:响应于用户在可视化界面的配置操作,将各个事件的相关信息与各个事件的消息内容模板之间的对应关系存储在数据库中;各个事件的相关信息包括各个事件绑定的类名和方法名;当检测到目标方法被执行时,根据目标方法的类名和方法名,从数据库中读取对应的目标消息内容模板;对目标消息内容模板进行渲染,生成目标消息内容;将目标消息内容推送给客户端。该方法通过直观的可视化界面,让用户根据实际需求定制事件和消息内容模板,简化配置过程,解决Java系统消息推送过程中配置复杂的问题。
Description
技术领域
本申请涉及信息技术领域,提供一种Java系统消息推送方法、装置、设备及介质。
背景技术
Java系统消息推送是指在Java应用程序中实现消息推送功能的技术。消息推送是一种向客户端实时发送消息或通知的方式,使得应用程序能够及时更新和交互。在Java中,常见的系统消息推送技术例如WebSocket、服务器推送事件(Server-Sent Events,SSE)和长轮询(Long Polling)等,这些技术允许服务器主动向客户端发送消息,而不需要客户端主动请求。
然而现有的Java系统消息推送技术在实现和配置上比较复杂,对于初学者来说存在一定困难。
发明内容
本申请实施例提供一种Java系统消息推送方法、装置、设备及介质,用于解决Java系统消息推送过程中配置复杂的问题。
第一方面,提供一种Java系统消息推送方法,所述Java系统消息推送方法包括:
响应于用户在可视化界面的配置操作,将各个事件的相关信息与所述各个事件的消息内容模板之间的对应关系存储在数据库中;所述各个事件的相关信息包括所述各个事件绑定的类名和方法名;
当检测到目标方法被执行时,根据所述目标方法的类名和方法名,从所述数据库中读取对应的目标消息内容模板;
对所述目标消息内容模板进行渲染,生成目标消息内容;
将所述目标消息内容推送给客户端。
可选地,所述响应于用户在可视化界面的配置操作,将各个事件的相关信息与所述各个事件的消息内容模板之间的对应关系存储在数据库中,包括:
响应于用户在可视化界面对任一事件的信息录入操作,获取所述任一事件的相关信息;
响应于所述用户在所述可视化界面对任一事件的模板编辑操作,获取所述任一事件的消息内容模板;
将所述任一事件的相关信息与所述任一事件的消息内容模板之间的对应关系存储在数据库中。
可选地,在将所述任一事件的相关信息与所述任一事件的消息内容模板之间的对应关系存储在数据库中之后,所述Java系统消息推送方法还包括:
响应于所述用户在所述可视化界面对所述任一事件的修改操作,获取修改信息;
根据所述修改信息,对所述数据库中存储的所述任一事件的相关信息和/或所述任一事件的消息内容模板进行修改。
可选地,在将所述任一事件的相关信息与所述任一事件的消息内容模板之间的对应关系存储在数据库中之后,所述Java系统消息推送方法还包括:
响应于所述用户在所述可视化界面对所述任一事件的删除操作,从所述数据库中删除所述任一事件的相关信息和所述任一事件的消息内容模板。
可选地,所述对所述目标消息内容模板进行渲染,生成目标消息内容,包括:
获取所述目标消息内容模板中各个占位符对应的属性信息;
根据所述各个占位符对应的属性信息,对所述各个占位符进行填充,获得填充后的目标消息内容模板;
对所述填充后的目标消息内容模板进行渲染,生成目标消息内容。
可选地,所述根据所述各个占位符对应的属性信息,对所述各个占位符进行填充,包括:
若获取到所述各个占位符中任一占位符对应的属性信息,则用所述任一占位符对应的属性信息对所述任一占位符进行填充;
若未获取到所述任一占位符对应的属性信息,则用特殊字符对所述任一占位符进行填充;所述特殊字符表示所述任一占位符有内容但未获取到。
可选地,在当检测到目标方法被执行时,根据所述目标方法的类名和方法名,从所述数据库中读取对应的目标消息内容模板之前,所述Java系统消息推送方法还包括:
根据配置文件或系统属性的值,判断是否启用消息功能;
若是,则从所述数据库中读取所述各个事件的相关信息;所述各个事件的相关信息还包括所述各个事件的事件名称;
使用java反射机制加载所述各个事件绑定的类名对应的各个类,获取所述各个事件绑定的方法名对应的各个方法;
根据所述各个事件的事件名称,注册所述各个方法;所述目标方法为所述各个方法中的任一方法。
第二方面,提供一种Java系统消息推送装置,所述Java系统消息推送装置包括:
配置模块,用于响应于用户在可视化界面的配置操作,将各个事件的相关信息与所述各个事件的消息内容模板之间的对应关系存储在数据库中;所述各个事件的相关信息包括所述各个事件绑定的类名和方法名;
读取模块,用于当检测到目标方法被执行时,根据所述目标方法的类名和方法名,从所述数据库中读取对应的目标消息内容模板;
渲染模块,用于对所述目标消息内容模板进行渲染,生成目标消息内容;
推送模块,用于将所述目标消息内容推送给客户端。
第三方面,本申请提供了一种计算机设备,该计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序,实现实施例中所述的方法。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,处理器执行所述计算机程序,实现实施例中所述的方法。
在本申请实施例中,响应于用户在可视化界面的配置操作,将各个事件的相关信息与所述各个事件的消息内容模板之间的对应关系存储在数据库中;各个事件的相关信息包括各个事件绑定的类名和方法名,当检测到目标方法被执行时,根据目标方法的类名和方法名,从数据库中读取对应的目标消息内容模板;对目标消息内容模板进行渲染,生成目标消息内容;将目标消息内容推送给客户端。该方法通过直观的可视化界面,让用户能够根据实际需求灵活且轻松地进行事件和消息内容模板的定制,从而避免开发人员在代码中进行硬编码,简化了消息推送的配置过程,解决了Java系统消息推送过程中配置复杂的问题。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
附图1为本申请实施例涉及的硬件运行环境的计算机设备结构示意图;
附图2为本申请实施例提供的Java系统消息推送方法的一种流程示意图;
附图3为本申请实施例提供的注册方法事件的一种流程示意图;
附图4为本申请实施例提供的Java系统消息推送装置的一种结构示意图。
图中标记:101-处理器,102-通信总线,103-用户接口,104-网络接口,105-存储器,401-配置模块,402-读取模块,403-渲染模块,404-推送模块,405-注册模块。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
首先,对现有的一些Java系统消息推送技术进行简要介绍。
WebSocket是一种在单个传输控制协议(TCP,Transmission Control Protocol)连接上进行全双工通信的协议,允许客户端和服务器之间进行双向通信。Server-SentEvents是一种基于超文本传输协议(Hypertext Transfer Protocol,HTTP)的服务器推送技术,允许服务器向客户端单向推送数据流,而不支持客户端向服务器发送消息。LongPolling是客户端向服务器发送一个请求,服务器在接收到请求后不立即返回响应,而是保持连接,直到有数据可发送时才返回响应。
这些现有的Java系统消息推送技术也存在一些缺陷和不足,以下是一些常见的问题:
1.复杂性:某些系统消息推送技术在实现和配置上比较复杂,对于初学者来说可能学习困难。
2.可伸缩性:一些技术在处理大量并发连接时可能会面临性能问题,导致系统的可伸缩性受限。
3.兼容性:不同的浏览器和设备对系统消息推送技术的支持程度有所差异,可能需要额外的处理来确保兼容性。
4.安全性:在系统消息推送中,需要考虑安全性问题,例如身份验证和防止恶意攻击。
鉴于此,本申请提供了一种Java系统消息推送方法,该方法可以由计算机设备执行,该计算机设备中安装有Java应用程序。在介绍本申请的具体技术方案之前,先介绍下本申请实施例方案涉及的硬件运行环境。
参照附图1,附图1为本申请实施例方案涉及的硬件运行环境的计算机设备结构示意图。
如附图1所示,该计算机设备可以包括:处理器101,例如中央处理器(CentralProcessing Unit,CPU),通信总线102,用户接口103,网络接口104,存储器105。其中,通信总线102用于实现这些组件之间的连接通信。用户接口103可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口103还可以包括标准的有线接口、无线接口。网络接口104可选地可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器105可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器105可选地还可以是独立于前述处理器101的存储装置。
本领域技术人员可以理解,附图1中示出的结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如附图1所示,作为一种存储介质的存储器105中可以包括操作系统、数据配置模块、网络通信模块、用户接口模块以及电子程序。
在附图1所示的计算机设备中,网络接口104主要用于与网络服务器进行数据通信;用户接口103主要用于与用户进行数据交互;本发明计算机设备中的处理器101、存储器105可以设置在计算机设备中,所述计算机设备通过处理器101调用存储器105中存储的Java系统消息推送装置,并执行本申请实施例提供的Java系统消息推送方法。
为了实现本申请提供的Java系统消息推送方法,开发人员需要完成开发基础搭建,下面介绍开发流程。
在 Java 中,项目是一个包含源代码、配置文件和其他资源的文件夹或目录,它是一个可以被编译、构建和打包成可执行文件或库的完整的软件应用程序。首先,如果是maven项目,则引入对应的项目对象模型(Project Object Model,POM)文件,如果是普通项目,则导入相关的JAR包。其次,找到需要发送消息的类,在类上增加相应的注解@Msg(name=”名称”)。再者,如果是spring项目,在对应的配置文件(application.properties)中添加配置以启用消息功能,如果是非spring项目,则需要在项目启动时将此配置设置为系统属性。最后,手动执行此框架的SQL文件即可完成开发基础搭建。
在本申请实施例中,开发人员在编码过程中,只需在相关类上添加指定注解,Java系统在项目启动时会自动扫描这些注解,可以减少代码的侵入性,对原有代码几乎没有任何影响。
基于前述实施例的计算机设备和开发环境,下面结合附图2对本申请的实施例提供的一种Java系统消息推送方法进行介绍,步骤如下:
S201、响应于用户在可视化界面的配置操作,将各个事件的相关信息与所述各个事件的消息内容模板之间的对应关系存储在数据库中。
在具体实施过程中,计算机设备为用户提供了可视化界面,用户可以在可视化界面进行配置,输入各个事件的相关信息和各个事件的消息内容模板,其中,各个事件的相关信息包括各个事件绑定的类名和方法名、各个事件的事件名称、各个事件是否启用消息功能(即消息推送功能)。在Java中,类名表示一个类的名称,方法名表示在该类中定义的方法的名称。类是面向对象编程的基本单元,它可以包含属性和方法,而方法则是用来执行特定任务的一段代码。
计算机设备响应于用户的配置操作,分别获取各个事件的相关信息与各个事件的消息内容模板,并将各个事件的相关信息与各个事件的消息内容模板之间的对应关系存储在数据库中。
进一步,计算机设备还可以响应于用户的测试操作,验证消息模板内容是否能正确推送并显示。
S202、当检测到目标方法被执行时,根据目标方法的类名和方法名,从数据库中读取对应的目标消息内容模板。
在具体实施过程中,计算机设备中注册了各个事件绑定的方法名对应的各个方法,目标方法可以是各个方法中的任一方法,即目标方法为任一事件绑定的方法名对应的方法。
在Java中,检测方法是否被执行有多种方式,例如:在方法内部使用日志记录工具在控制台输出信息,以此来判断方法是否被执行,或者,在方法内部抛出异常,如果异常被捕获,则说明该方法被执行。当检测到目标方法被执行时,从数据库中读取对应的消息内容模板,将目标方法的类名和方法名所对应的消息内容模板,作为目标消息内容模板。
S203、对目标消息内容模板进行渲染,生成目标消息内容。
在具体实施过程中,对消息内容模板进行渲染也就是将消息内容模板与变量数据结合起来,生成实际消息内容。
S204、将目标消息内容推送给客户端。
在具体实施过程中,在获得目标消息内容之后,可以将目标消息内容推送给客户端,还可以将目标消息内容存储在数据库中。
在一种可能的实施例中,为了方便用户操作,用户在可视化界面进行配置操作的具体步骤包括:
S1.1、响应于用户在可视化界面对任一事件的信息录入操作,获取该任一事件的相关信息。
在具体实施过程中,可视化界面包括多个子界面,例如第一可视化界面、第二可视化界面、第三可视化界面等。计算机设备在第一可视化界面设置有事件录入按钮,用户在第一可视化界面点击事件录入按钮,计算机设备从第一可视化界面跳转至第二可视化界面。用户在第二可视化界面进行信息录入操作,即填写任一事件的相关信息,计算机设备便可获取到该任一事件的相关信息。
S1.2、响应于用户在可视化界面对任一事件的模板编辑操作,获取该任一事件的消息内容模板。
在具体实施过程中,计算机设备获取到该任一事件的相关信息之后,便从第二可视化界面跳转至第三可视化界面。用户在第三可视化界面进行模板编辑操作,即输入消息内容模板中的内容,计算机设备便可获取到该任一事件的消息内容模板。
S1.3、将该任一事件的相关信息与该任一事件的消息内容模板之间的对应关系存储在数据库中。
在具体实施过程中,计算机设备分别获取到该任一事件的相关信息和消息内容模板之后,将该任一事件的相关信息与该任一事件的消息内容模板进行绑定,并将二者之间的对应关系存储在数据库中。
在一种可能的实施例中,计算机设备可以在将任一事件的相关信息与任一事件的消息内容模板之间的对应关系存储在数据库中之后,可以响应于用户在可视化界面对任一事件的修改操作,获取修改信息,根据修改信息,对数据库中存储的任一事件的相关信息和/或任一事件的消息内容模板进行修改。
在具体实施过程中,可视化界面还包括第四可视化界面,第四可视化界面显示有多个事件的事件名称。计算机设备在第一可视化界面还设置有事件修改按钮和模板修改按钮。
若用户在第一可视化界面点击事件修改按钮,计算机设备从第一可视化界面跳转至第四可视化界面。用户在第四可视化界面选择任一事件的事件名称,计算机设备从第一可视化界面跳转至第二可视化界面,用户在第二可视化界面修改该任一事件的相关信息,计算机设备根据用户在第二可视化界面填写的修改信息,对数据库中存储的该任一事件的相关信息进行修改。
若用户在第一可视化界面点击模板修改按钮,计算机设备从第一可视化界面跳转至第四可视化界面。用户在第四可视化界面选择该任一事件的事件名称,计算机设备从第一可视化界面跳转至第三可视化界面,用户在第三可视化界面修改该任一事件的消息内容模板,计算机设备根据用户在第三可视化界面填写的修改信息,对数据库中存储的该任一事件的消息内容模板进行修改。
在一种可能的实施例中,计算机设备在将任一事件的相关信息与任一事件的消息内容模板之间的对应关系存储在数据库中之后,还可以响应于用户在可视化界面对任一事件的删除操作,从数据库中删除任一事件的相关信息和任一事件的消息内容模板。
在具体实施过程中,计算机设备在第一可视化界面还设置有事件删除按钮,用户在第一可视化界面点击事件删除按钮,计算机设备从第一可视化界面跳转至第四可视化界面。用户在第四可视化界面选择任一事件的事件名称之后,计算机设备便从数据库中删除该任一事件的相关信息和该任一事件的消息内容模板。
在本申请实施例中,为用户提供可视化界面进行事件配置、事件与消息内容模板的绑定、消息内容模板的维护。用户可以自主地新增、修改和删除事件与消息内容模板的绑定,灵活地自定义模板内容,轻松实现事件与消息内容模板的管理和定制,提高开发效率和灵活性。修改模板后即可立即生效,无需重启系统,从而降低维护成本。
在一种可能的实施例中,对目标消息内容模板进行渲染,生成目标消息内容的步骤包括:
获取目标消息内容模板中各个占位符对应的属性信息;
根据各个占位符对应的属性信息,对各个占位符进行填充,获得填充后的目标消息内容模板;
对填充后的目标消息内容模板进行渲染,生成目标消息内容。
在具体实施过程中,占位符可以是动态参数,用户在可视化界面配置消息内容模板时,可显示参数提示,用户只能按照参数提示填入值,否则按照自定义参数处理。进而在消息渲染时会自动获取目标消息内容模板中各个占位符对应的填充属性信息,并将该属性信息填充到对应的占位符。
动态参数示例如下:
(1)系统信息:#{sys.参数名}(例:当前系统内存占用#{sys.usedMemory})
(2)发送方用户信息:#{fUser.参数名}(注:需要实现获取用户信息方法,否则按照默认内容取值,可能会存在取不到的情况)(例:当前发送人员姓名:#{fUser.name})
(3)接收方用户信息:#{tUser.参数名}(注:需要实现获取用户信息方法,否则按照默认内容取值,可能会存在取不到的情况)(例:当前接收人员账户:#{tUser.username})
(4)自定义参数:#{cus.参数名}(例:当前系统名称:#{cus.sysName})
(5)方法参数:#{para.参数名}(例:接收参数任务Id:#{para.taskId})
(6)方法返回值:#{ret.参数名}(例:返回信息中任务名称:#{ret.taskName})
(7)开发人员也可以自己实现接口,自定义参数前缀。
在本申请实施例中,在编辑消息模板内容时,用户可以使用占位符的方式插入消息上下文属性,当消息发送时,系统会自动填充这些属性,避免开发人员在代码中进行硬编码。
在一种可能的实施例中,根据属性信息对占位符进行填充的具体步骤包括:若获取到各个占位符中任一占位符对应的属性信息,则用该任一占位符对应的属性信息对该任一占位符进行填充;若未获取到该任一占位符对应的属性信息,则用特殊字符对该任一占位符进行填充。
在具体实施过程中,特殊字符表示该任一占位符有内容但未获取到,特殊字符例如为英文问号。
在一种可能的实施例中,在当检测到目标方法被执行时,根据目标方法的类名和方法名,从数据库中读取对应的目标消息内容模板之前,需要为各个事件注册对应的方法,请参照附图3,注册方法事件的步骤如下:
S301、根据配置文件或系统属性的值,判断是否启用消息功能。
在具体实施过程中,如果是spring项目,则读取对应的配置文件(application.properties),如果是非spring项目,则读取系统属性,根据读取的配置文件或系统属性的值,判断是否启用消息功能。如果未获取到配置文件或系统属性,则默认为禁用消息功能。若是,则执行S302,若否,则结束流程。
S302、从数据库中读取各个事件的相关信息。
在具体实施过程中,若确定启用消息功能,则从数据库中读取各个事件的相关信息。各个事件的相关信息包括所述各个事件绑定的类名和方法名。
S303、使用java反射机制加载各个事件绑定的类名对应的各个类,获取各个事件绑定的方法名对应的各个方法。
在具体实施过程中,使用java反射机制加载各个事件绑定的类名对应的各个类,在各个类中分别获取各个事件绑定的方法名对应的各个方法。
S304、根据各个事件的事件名称,注册各个方法。
在具体实施过程中,根据各个事件的事件名称,注册各个事件以及注册各个事件绑定的方法名对应的各个方法。
综上所述,本申请实施例提供的Java系统消息推送方法,为用户提供可视化界面,用户可以方便地管理和定制消息内容模板,无需手动修改代码,节省了时间和精力,简化了消息推送的配置过程,解决Java系统消息推送过程中配置复杂的问题。且该方法只需少量配置和注解,即可轻松实现所需功能,非常适合新手开发人员,当不再需要使用该消息机制时,只需修改统一配置即可完成,具有良好的兼容性,且依赖性较少,且通过采用注解扫描的方式,可以减少代码的侵入性,对原有代码几乎没有任何影响。
在另一实施例中,如附图4所示,基于与前述实施例相同的发明思路,本申请的实施例还提供了一种Java系统消息推送装置40,Java系统消息推送装置40包括:
配置模块401,用于响应于用户在可视化界面的配置操作,将各个事件的相关信息与所述各个事件的消息内容模板之间的对应关系存储在数据库中;所述各个事件的相关信息包括所述各个事件绑定的类名和方法名;
读取模块402,用于当检测到目标方法被执行时,根据所述目标方法的类名和方法名,从所述数据库中读取对应的目标消息内容模板;
渲染模块403,用于对所述目标消息内容模板进行渲染,生成目标消息内容;
推送模块404,用于将所述目标消息内容推送给客户端。
可选地,配置模块401具体用于:
响应于用户在可视化界面对任一事件的信息录入操作,获取任一事件的相关信息;
响应于用户在可视化界面对任一事件的模板编辑操作,获取任一事件的消息内容模板;
将任一事件的相关信息与任一事件的消息内容模板之间的对应关系存储在数据库中。
可选地,配置模块401还用于:
在将任一事件的相关信息与任一事件的消息内容模板之间的对应关系存储在数据库中之后,响应于用户在可视化界面对任一事件的修改操作,获取修改信息;
根据修改信息,对数据库中存储的任一事件的相关信息和/或任一事件的消息内容模板进行修改。
可选地,配置模块401还用于:
在将任一事件的相关信息与任一事件的消息内容模板之间的对应关系存储在数据库中之后,响应于用户在可视化界面对任一事件的删除操作,从数据库中删除任一事件的相关信息和任一事件的消息内容模板。
可选地,渲染模块403具体用于:
获取目标消息内容模板中各个占位符对应的属性信息;
根据各个占位符对应的属性信息,对各个占位符进行填充,获得填充后的目标消息内容模板;
对填充后的目标消息内容模板进行渲染,生成目标消息内容。
可选地,渲染模块403具体用于:
若获取到各个占位符中任一占位符对应的属性信息,则用任一占位符对应的属性信息对任一占位符进行填充;
若未获取到任一占位符对应的属性信息,则用特殊字符对任一占位符进行填充;特殊字符表示任一占位符有内容但未获取到。
可选地,Java系统消息推送装置40还包括注册模块405,注册模块405用于:
在当检测到目标方法被执行时,根据目标方法的类名和方法名,从数据库中读取对应的目标消息内容模板之前,根据配置文件或系统属性的值,判断是否启用消息功能;
若确定启用消息功能,则从数据库中读取各个事件的相关信息;各个事件的相关信息还包括各个事件的事件名称;
使用java反射机制加载各个事件绑定的类名对应的各个类,获取各个事件绑定的方法名对应的各个方法;
根据各个事件的事件名称,注册各个方法;目标方法为各个方法中的任一方法。
需要说明的是,本实施例中Java系统消息推送装置40中各模块是与前述实施例中Java系统消息推送方法中的各步骤一一对应,因此,本实施例的具体实施方式可参照前述Java系统消息推送方法的实施方式,这里不再赘述。
此外,在一种实施例中,本申请还提供一种计算机设备,所述计算机设备包括处理器,存储器以及存储在所述存储器中的计算机程序,所述计算机程序被处理器运行时实现前述的Java系统消息推送方法。
此外,在一种实施例中,本申请还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器运行时实现前述的Java系统消息推送方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。计算机可以是包括智能终端和服务器在内的各种计算设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述 实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通 过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的 技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体 现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光 盘)中,包括若干指令用以使得一台多媒体终端设备(可以是手机,计算机,电视接收机,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (8)
1.一种Java系统消息推送方法,其特征在于,所述Java系统消息推送方法包括:
响应于用户在可视化界面的配置操作,将各个事件的相关信息与所述各个事件的消息内容模板之间的对应关系存储在数据库中;所述各个事件的相关信息包括所述各个事件绑定的类名和方法名;
当检测到目标方法被执行时,根据所述目标方法的类名和方法名,从所述数据库中读取对应的目标消息内容模板;
对所述目标消息内容模板进行渲染,生成目标消息内容;
将所述目标消息内容推送给客户端;
所述响应于用户在可视化界面的配置操作,将各个事件的相关信息与所述各个事件的消息内容模板之间的对应关系存储在数据库中,包括:响应于用户在可视化界面对任一事件的信息录入操作,获取所述任一事件的相关信息;响应于所述用户在所述可视化界面对所述任一事件的模板编辑操作,获取所述任一事件的消息内容模板;将所述任一事件的相关信息与所述任一事件的消息内容模板之间的对应关系存储在数据库中;
在当检测到目标方法被执行时,根据所述目标方法的类名和方法名,从所述数据库中读取对应的目标消息内容模板之前,所述Java系统消息推送方法还包括:根据配置文件或系统属性的值,判断是否启用消息功能;若是,则从所述数据库中读取所述各个事件的相关信息;所述各个事件的相关信息还包括所述各个事件的事件名称;使用java反射机制加载所述各个事件绑定的类名对应的各个类,获取所述各个事件绑定的方法名对应的各个方法;根据所述各个事件的事件名称,注册所述各个方法;所述目标方法为所述各个方法中的任一方法。
2.如权利要求1所述的Java系统消息推送方法,其特征在于,在将所述任一事件的相关信息与所述任一事件的消息内容模板之间的对应关系存储在数据库中之后,所述Java系统消息推送方法还包括:
响应于所述用户在所述可视化界面对所述任一事件的修改操作,获取修改信息;
根据所述修改信息,对所述数据库中存储的所述任一事件的相关信息和/或所述任一事件的消息内容模板进行修改。
3.如权利要求1所述的Java系统消息推送方法,其特征在于,在将所述任一事件的相关信息与所述任一事件的消息内容模板之间的对应关系存储在数据库中之后,所述Java系统消息推送方法还包括:
响应于所述用户在所述可视化界面对所述任一事件的删除操作,从所述数据库中删除所述任一事件的相关信息和所述任一事件的消息内容模板。
4.如权利要求1所述的Java系统消息推送方法,其特征在于,所述对所述目标消息内容模板进行渲染,生成目标消息内容,包括:
获取所述目标消息内容模板中各个占位符对应的属性信息;
根据所述各个占位符对应的属性信息,对所述各个占位符进行填充,获得填充后的目标消息内容模板;
对所述填充后的目标消息内容模板进行渲染,生成目标消息内容。
5.如权利要求4所述的Java系统消息推送方法,其特征在于,所述根据所述各个占位符对应的属性信息,对所述各个占位符进行填充,包括:
若获取到所述各个占位符中任一占位符对应的属性信息,则用所述任一占位符对应的属性信息对所述任一占位符进行填充;
若未获取到所述任一占位符对应的属性信息,则用特殊字符对所述任一占位符进行填充;所述特殊字符表示所述任一占位符有内容但未获取到。
6.一种Java系统消息推送装置,其特征在于,所述Java系统消息推送装置包括:
配置模块,用于响应于用户在可视化界面的配置操作,将各个事件的相关信息与所述各个事件的消息内容模板之间的对应关系存储在数据库中;所述各个事件的相关信息包括所述各个事件绑定的类名和方法名;
读取模块,用于当检测到目标方法被执行时,根据所述目标方法的类名和方法名,从所述数据库中读取对应的目标消息内容模板;
渲染模块,用于对所述目标消息内容模板进行渲染,生成目标消息内容;
推送模块,用于将所述目标消息内容推送给客户端;
所述配置模块具体用于:响应于用户在可视化界面对任一事件的信息录入操作,获取所述任一事件的相关信息;响应于所述用户在所述可视化界面对所述任一事件的模板编辑操作,获取所述任一事件的消息内容模板;将所述任一事件的相关信息与所述任一事件的消息内容模板之间的对应关系存储在数据库中;
注册模块,用于:在当检测到目标方法被执行时,根据目标方法的类名和方法名,从数据库中读取对应的目标消息内容模板之前,根据配置文件或系统属性的值,判断是否启用消息功能;若是,则从所述数据库中读取所述各个事件的相关信息;所述各个事件的相关信息还包括所述各个事件的事件名称;使用java反射机制加载所述各个事件绑定的类名对应的各个类,获取所述各个事件绑定的方法名对应的各个方法;根据所述各个事件的事件名称,注册所述各个方法;所述目标方法为所述各个方法中的任一方法。
7.一种计算机设备,其特征在于,该计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序,实现如权利要求1-5中任一项所述的Java系统消息推送方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,处理器执行所述计算机程序,实现如权利要求1-5中任一项所述的Java系统消息推送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410024034.8A CN117520021B (zh) | 2024-01-08 | 2024-01-08 | 一种Java系统消息推送方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410024034.8A CN117520021B (zh) | 2024-01-08 | 2024-01-08 | 一种Java系统消息推送方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117520021A CN117520021A (zh) | 2024-02-06 |
CN117520021B true CN117520021B (zh) | 2024-04-16 |
Family
ID=89757102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410024034.8A Active CN117520021B (zh) | 2024-01-08 | 2024-01-08 | 一种Java系统消息推送方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117520021B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710593A (zh) * | 2012-03-19 | 2012-10-03 | 北京邮电大学 | 一种图形聚合中的消息分发方法及装置、系统 |
CN111381981A (zh) * | 2020-03-04 | 2020-07-07 | 上海东普信息科技有限公司 | 小程序消息的推送方法、装置、设备及存储介质 |
CN111464427A (zh) * | 2020-03-27 | 2020-07-28 | 北京三快在线科技有限公司 | 发送消息的方法、装置、设备及存储介质 |
CN113572680A (zh) * | 2021-07-30 | 2021-10-29 | 康键信息技术(深圳)有限公司 | 模板消息发送方法、装置、设备及存储介质 |
CN113656735A (zh) * | 2021-08-19 | 2021-11-16 | 携程商旅信息服务(上海)有限公司 | 消息推送系统、方法、电子设备和存储介质 |
CN116488986A (zh) * | 2023-04-03 | 2023-07-25 | 北京水滴科技集团有限公司 | 基于事件驱动的消息触达方法、系统及装置、存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104702675B (zh) * | 2015-02-13 | 2017-06-13 | 腾讯科技(深圳)有限公司 | 用户事件的响应方法及装置 |
US20180103004A1 (en) * | 2016-10-07 | 2018-04-12 | Facebook, Inc. | Reengaging website visitors with social networking system electronic messages |
JP7231347B2 (ja) * | 2017-07-19 | 2023-03-01 | エヌエイチエヌ コーポレーション | イベント基盤パッケージモジュールの呼び出し方法およびシステム |
US20230004424A1 (en) * | 2021-06-30 | 2023-01-05 | Able Ai, Inc. | Transaction processing computer system with multi-channel communication control and decision support |
-
2024
- 2024-01-08 CN CN202410024034.8A patent/CN117520021B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710593A (zh) * | 2012-03-19 | 2012-10-03 | 北京邮电大学 | 一种图形聚合中的消息分发方法及装置、系统 |
CN111381981A (zh) * | 2020-03-04 | 2020-07-07 | 上海东普信息科技有限公司 | 小程序消息的推送方法、装置、设备及存储介质 |
CN111464427A (zh) * | 2020-03-27 | 2020-07-28 | 北京三快在线科技有限公司 | 发送消息的方法、装置、设备及存储介质 |
CN113572680A (zh) * | 2021-07-30 | 2021-10-29 | 康键信息技术(深圳)有限公司 | 模板消息发送方法、装置、设备及存储介质 |
CN113656735A (zh) * | 2021-08-19 | 2021-11-16 | 携程商旅信息服务(上海)有限公司 | 消息推送系统、方法、电子设备和存储介质 |
CN116488986A (zh) * | 2023-04-03 | 2023-07-25 | 北京水滴科技集团有限公司 | 基于事件驱动的消息触达方法、系统及装置、存储介质 |
Non-Patent Citations (3)
Title |
---|
A Framework for Medical Information Integration Based on Ontology and Web Services;Caiping Chen等;《2010 2nd International Conference on Information Engineering and Computer Science》;20101230;1-4 * |
基于飞书开放平台的第三方应用消息推送系统设计与实现;周杨;《中国优秀硕士学位论文全文数据库 信息科技辑》;20220515(第05期);I138-1224 * |
小程序模板消息java后台_微信小程序模板消息后端代码;weixin_39604557;《https://blog.csdn.net/weixin_39604557/article/details/114743077》;20210226;1-5 * |
Also Published As
Publication number | Publication date |
---|---|
CN117520021A (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108319483B (zh) | 网页处理方法、装置、终端及存储介质 | |
KR102105261B1 (ko) | 인터페이스 데이터 디스플레이 방법 및 장치 | |
US8504913B2 (en) | Client-side components | |
US8856805B2 (en) | Virtual channel for embedded process communication | |
US20070067418A1 (en) | Object oriented web application framework | |
US20110314389A1 (en) | Systems and methods for integration of an application runtime environment into a user computing environment | |
CN112114890A (zh) | 小程序的处理方法、装置、设备及存储介质 | |
US20170295217A1 (en) | Method and system of application development for multiple device client platforms | |
CN109669692B (zh) | 源码共享方法、服务器、计算机可读存储介质及系统 | |
KR101482151B1 (ko) | 웹 어플리케이션 실행 장치 및 방법 | |
CN113792208B (zh) | 基于网页的图片交互方法、装置、设备、介质及程序产品 | |
CN110874278A (zh) | 外部系统的嵌入方法、工作流系统、设备及存储介质 | |
US20050257138A1 (en) | Systems and methods for defining web content navigation | |
CN111970192B (zh) | 基于会话群组的信息编辑方法及装置 | |
CN117520021B (zh) | 一种Java系统消息推送方法、装置、设备及介质 | |
CN101964742A (zh) | 一种网络开放能力使用方法、系统和装置 | |
CN115113898A (zh) | 微应用的动态更新方法、装置、计算机设备和存储介质 | |
CN115525305A (zh) | 数据处理、应用启动方法、装置、计算机设备和存储介质 | |
CN114721929A (zh) | 测试方法、装置、存储介质及设备 | |
Burns et al. | JavaServer™ Faces Specification | |
CN115878676B (zh) | 一种预览文件的方法、装置、设备和介质 | |
CN117707583A (zh) | 页面更新方法、电子设备及页面更新系统 | |
CN116962508A (zh) | 基于通信桥的Web端与Native端交互方法 | |
CN118779038A (zh) | 多数据源的数据展示方法、设备及计算机可读存储介质 | |
CN114153886A (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 |