基于spi进行系统短信发送的方法及装置
技术领域
1.本发明属于互联网技术领域,具体涉及一种基于spi进行系统短信发送的方法及装置。
背景技术:2.随着移动互联网技术的不断发展,传统的api都是调用方依赖接口的实现来实现业务使用,业务场景的多样化和复杂化,促用我们在生产应用,需要来实现框架扩展和组件替换。国际海外系统在每应用一个国家后为了快速的响应用户使用运营商的短信功能,但是现有技术存在以下为:一、每次新增一个运营商都需要重新去编写应用系统的代码,调用对应的api接口。二、每一次调整都需要从编码、调试、测试、部署这些环节都要去做。三、当我们海外系统新增一个国家进行运行时,在业务场景不变的情况,我们仅因为短信服务都需要重新实现一遍。
3.综上所述,传统做法需要代码耦合度强,调试成本高,不确定性较多;传统的条件路由判断会加非常多的冗余代码;每次加一个新的国家都需要去重新编译、打包、部署这样流程,整个流程较长导致效率较低,且过程中不可控因素较多,且很容易造成意外引起风险。
技术实现要素:4.有鉴于此,本发明的目的在于克服现有技术的不足,提供一种基于spi进行系统短信发送的方法及装置,以解决现有技术中系统短信发送效率低且风险高的问题。
5.为实现以上目的,本发明采用如下技术方案:一种基于spi进行系统短信发送的方法,包括:
6.构建标准短信接口并实例化;
7.基于所述标准短信接口进行处理以实现不同应用场景的需求;
8.所述构建标准短信接口并实例化,包括:
9.通过应用业务场景判断其所属的业务域的范围以及对应的接口调用模板,并判断需要调用的服务以触发调用短信装置并构建标准的调用接口;
10.构建新的服务加载器并根据所述服务加载器构建加载类处理对象;
11.遍历配置文件中的所有服务并将配置文件中类反射加载进行实例化。
12.进一步的,所述应用业务场景包括:
13.取件短信、催提短信以及用户登录验证码。
14.进一步的,所述根据所述服务加载器构建加载类处理对象,包括:
15.通过传入的所述服务加载器,利用java提供的内部api构建新的后加载的迭代器。
16.进一步的,所述将配置文件中类反射加载进行实例化,包括:
17.将配置文件中所有配置类信息,通过反射加载实例化并且加载到缓存中去。
18.进一步的,所述基于所述标准短信接口进行处理以实现不同应用场景的需求,包
括:
19.根据不同国家的运营商提供的服务器地址、报文的格式以及对应的协议将寻消息内容进行推送。
20.本技术实施例提供一种基于spi进行系统短信发送的装置,包括:
21.构建模块,用于构建标准短信接口并实例化;
22.处理模块,用于基于所述标准短信接口进行处理以实现不同应用场景的需求;
23.所述构建模块,包括:
24.判断单元,用于通过应用业务场景判断其所属的业务域的范围以及对应的接口调用模板,并判断需要调用的服务以触发调用短信装置并构建标准的调用接口;
25.构建单元,用于构建新的服务加载器并根据所述服务加载器构建加载类处理对象;
26.加载单元,用于遍历配置文件中的所有服务并将配置文件中类反射加载进行实例化。
27.本发明采用以上技术方案,能够达到的有益效果包括:
28.本发明提供一种基于spi进行系统短信发送的方法及装置,所述方法包括构建标准短信接口并实例化;基于标准短信接口进行处理以实现不同应用场景的需求;通过应用业务场景判断其所属的业务域的范围以及对应的接口调用模板,并判断需要调用的服务以触发调用短信装置并构建标准的调用接口;构建新的服务加载器并根据服务加载器构建加载类处理对象;遍历配置文件中的所有服务并将配置文件中类反射加载进行实例化。本发明通过spi机制在短消息方面的应用,不需要开发人员改动源码,实现了扩展;在符合开闭原则的前提下,只需要添加或修改配置,就可以灵活的实现扩展或改变策略,来达到系统灵活应用,将开发成本缩减到最小,加快系统的上线的效率,提高了时效性。
附图说明
29.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
30.图1为本发明基于spi进行系统短信发送的方法的步骤示意图;
31.图2为本发明构建标准短信接口的流程示意图;
32.图3为本发明基于spi进行系统短信发送的装置的结构示意图。
具体实施方式
33.为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
34.spi是为了被扩展的接口寻找服务的具体实现的技术,spi由调用方来制定接口规范,目前短消息调用在真正的调用的时侯,根据业务场景选择自己需要的外部服务商的短
信实现,真正实现了调用和实现的解耦,要能在系统运行中,动态的更换不同的运营商的服务,也可以在新国家业务的开展过程中,动态的加载新的服务。
35.现有的业务实现,需要先拿到运营商的接口服务,然后开发调用调试,每新增一个运营商,新增一个国家都需要同样的开发周期和流程,极大的重复劳动和低效率。
36.本技术提供的技术方案,在业务调用固化的场景前提下,海外系统可以在零调整的情况下,新的方案根据业务发展,不同国家,不同时区,不同运营商的消息服务进行后加载,从而满足新业务的发展和实现。
37.下面结合附图介绍本技术实施例中提供的一个具体的基于spi进行系统短信发送的方法。
38.如图1所示,本技术实施例中提供的基于spi进行系统短信发送的方法,包括:
39.s101,构建标准短信接口并实例化;
40.s102,基于所述标准短信接口进行处理以实现不同应用场景的需求;
41.所述构建标准短信接口并实例化,包括:
42.通过应用业务场景判断其所属的业务域的范围以及对应的接口调用模板,并判断需要调用的服务以触发调用短信装置并构建标准的调用接口;
43.构建新的服务加载器并根据所述服务加载器构建加载类处理对象;
44.遍历配置文件中的所有服务并将配置文件中类反射加载进行实例化。
45.基于spi进行系统短信发送的方法的工作原理为:参见图2,首先通过应用业务场景判断其所属的业务域的范围以及对应的接口调用模板,并判断需要调用的服务以触发调用短信装置并构建标准的调用接口;构建新的服务加载器并根据所述服务加载器构建加载类处理对象;遍历配置文件中的所有服务并将配置文件中类反射加载进行实例化。在构建标准短信接口后,进行处理以实现不同应用场景的需求。
46.本技术提供利用spi技术进行系统短信发送的方法,能够解决动态的加载服务扩展,而不需要整体牵动整个业务系统进行调整,利用小手术完成大问题,最终缩短了开发的周期,提高了系统的响应能力。
47.优选的,所述应用业务场景包括:
48.取件短信、催提短信以及用户登录验证码。
49.优选的,所述根据所述服务加载器构建加载类处理对象,包括:
50.通过传入的所述服务加载器,利用java提供的内部api构建新的后加载的迭代器。
51.优选的,所述将配置文件中类反射加载进行实例化,包括:
52.将配置文件中所有配置类信息,通过反射加载实例化并且加载到缓存中去。
53.优选的,所述基于所述标准短信接口进行处理以实现不同应用场景的需求,包括:
54.根据不同国家的运营商提供的服务器地址、报文的格式以及对应的协议将寻消息内容进行推送。
55.本实施例中,通过在业务场景取件短信、催提短信、用户登录验证码等场景,可以判断当前的业务场景所属的业务域的范围,以及对应的接口调用模板,可以判断出当前需要调用具体的服务。在应用植系统中触发调用短信的装置,使用通用的接口,供不同国家、不同时区、不同语言、不同的业务场景进行使用。本实施案例中,预先定义好标准的短信的调用方接口,将装配的控制权移到了应用系统程序的外部,只需要根据约定在meta/
services/目录下创建一个以服务接口命名的文件,该文件里就是实现服务接口的具体服务实现对象,外部程序装配该模块的时侯,就能通过配置文件找到具体的实现类名,并装载实例化,完成模块的注入。然后定义一个smssendinterface接口,serviceloader<smssendinterface>smssendinterface构建新的serviceloader对象。通过传入当前的类加载器,利用java提供的内部api来实现,thread.currentthread().getcontextclassloader(),构建一个新的后加载的迭代器。需要说明的是上面的后加载的迭代器,是一个内部类,通过扫描(特别注意是所有引用的jar包)meta
‑
inf/service目录的配置文件中所有的service的名字。在这个过程中,系统将配置文件中所有配置类信息,通过反射加载,实例化并且加载到缓存中去。
56.基于所述标准短信接口进行处理以实现不同应用场景的需求,只需要在该目录下对全限定名smssendinterface.java文件,该文件中指定全路径的namespace名字,比如com.xxx.xxx.vnsmssendimpl,com.xxx.xxx.tlsmssendimpl,com.xxx.xxx.cbsmssendimpl。以下举例说明,vnsmssendimpl:
57.vnsmssendimpl是越南短消息发送的具体实现,我们根据越南运营商提供的服务的地址,报文的格式,对应的协议将短消息内容推送即可。
58.tlsmssendimpl:
59.tlsmssendimpl是泰国短消息发送的具体实现,我们根据泰国运营商提供的服务的地址,报文的格式,对应的协议将短消息内容推送即可。
60.cbsmssendimpl:
61.cbsmssendimpl是柬埔寨短消息发送的具体实现,我们根据柬埔寨运营商提供的服务的地址,报文的格式,对应的协议将短消息内容推送即可。
62.如图3所示,本技术实施例提供一种基于spi进行系统短信发送的装置,包括:
63.构建模块301,用于构建标准短信接口并实例化;
64.处理模块302,用于基于所述标准短信接口进行处理以实现不同应用场景的需求;
65.所述构建模块,包括:
66.判断单元,用于通过应用业务场景判断其所属的业务域的范围以及对应的接口调用模板,并判断需要调用的服务以触发调用短信装置并构建标准的调用接口;
67.构建单元,用于构建新的服务加载器并根据所述服务加载器构建加载类处理对象;
68.加载单元,用于遍历配置文件中的所有服务并将配置文件中类反射加载进行实例化。
69.本技术实施例提供一种基于spi进行系统短信发送的装置的工作原理为,判断单元通过应用业务场景判断其所属的业务域的范围以及对应的接口调用模板,并判断需要调用的服务以触发调用短信装置并构建标准的调用接口;构建单元构建新的服务加载器并根据所述服务加载器构建加载类处理对象;加载单元遍历配置文件中的所有服务并将配置文件中类反射加载进行实例化,构建标准短信接口并实例化;处理模块基于所述标准短信接口进行处理以实现不同应用场景的需求。
70.本技术实施例提供一种计算机设备,包括处理器,以及与处理器连接的存储器;
71.存储器用于存储计算机程序,计算机程序用于执行上述任一实施例提供的基于
spi进行系统短信发送的方法;
72.处理器用于调用并执行存储器中的计算机程序。
73.综上所述,本发明提供一种基于spi进行系统短信发送的方法及装置,所述方法包括构建标准短信接口并实例化;基于标准短信接口进行处理以实现不同应用场景的需求;通过应用业务场景判断其所属的业务域的范围以及对应的接口调用模板,并判断需要调用的服务以触发调用短信装置并构建标准的调用接口;构建新的服务加载器并根据服务加载器构建加载类处理对象;遍历配置文件中的所有服务并将配置文件中类反射加载进行实例化。本发明通过spi机制在短消息方面的应用,不需要开发人员改动源码,实现了扩展;在符合开闭原则的前提下,只需要添加或修改配置,就可以灵活的实现扩展或改变策略,来达到系统灵活应用,将开发成本缩减到最小,加快系统的上线的效率,提高了时效性。
74.可以理解的是,上述提供的方法实施例与上述的装置实施例对应,相应的具体内容可以相互参考,在此不再赘述。
75.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
76.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
77.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令方法的制造品,该指令方法实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
78.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
79.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。