javaWeb 控制层互相调用的两种方案

1.情景展示

在实际开发过程中,往往会存在同一个功能对应多个页面,或者多个请求对应底层代码一样,如果全部将原有代码复制一份,虽然保持了各自的独立性,但也加大了后期的维护成本,本来要干一遍的活儿,可能你现在要干多遍,所以,就有了:控制层调控制层的现实需求。

2.具体分析

控制器A调控制器B,可以最大程度的减少代码的重复;

这种方式的使用有一个前提条件,即:

按道理来讲,业务代码是要放到业务层来处理的,如果代码不规范,将业务代码放到控制层里面,就会出现这样的需求;

当然,即使是代码规范,各层职责分明,也同样存在这种特殊需求:

同样的功能,不同的请求,使用不同的请求入参和请求格式,虽然殊途同归,但是请求的表现形式不同。

3.解决方案

这里又分两种情况:

情形一:两个请求在同一个java类当中;

情形二:两个请求不在同一个java类当中。

方案一:Http请求

这里就需要在请求B中配置A的请求地址;

请求地址的构成:请求协议://IP:端口号/项目/A请求路径

前缀配置又可以分为两种方式:一种是直接在写死。

另一种是动态取值

最后,按照请求A的参数标准、格式,通过HTTP请求进行调用,并解析响应结果。

方案二:调用请求对应的方法

只要是同一项目(如果是模块化开发的话,只能是下级引用上级,上级无法访问下级),B请求都是可以直接调用A请求的请求入口(方法)。

两个请求在同一类中

如果A请求和B请求不在同一个java类,可以通过注入对象的方式,将A请求的java类注入到B请求所在类当中。

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

原文地址:https://www.cnblogs.com/Marydon20170307/p/15540300.html