7.23:SpringCloud跨模块访问

Davco跨模块调用服务

需要使用的SQL

select  doc.code  from BASE_CUST_DOC_DEF doc where doc.id = (select SHOP_TYPE from BASE_CUSTOMER_EXT where id =(select CHANNEL_CUSTOMER_ID from occ_iuap_72.APP_USER " +
            " where LOGIN_NAME =? ));

我们这里将这SQL根据所在的数据库分为两部分

访问occ_base数据库的

select  doc.code  from BASE_CUST_DOC_DEF doc where doc.id = (select SHOP_TYPE from BASE_CUSTOMER_EXT where id = ?);

访问occ_iuap数据库的

select CHANNEL_CUSTOMER_ID from occ_iuap_72.APP_USER where LOGIN_NAME =?;

因为要访问不同数据库,所以我们要进行跨模块访问,下面说明两个模块的代码

Base模块代码

Repository层

在这里插入图片描述
这里写的SQL还不是很规范,因为使用的是原生的SQL,后面要使用JPA映射到对应表的实体类上面

Service层

在这里插入图片描述
没啥特别的,注入repository调用服务即可

Controller层

在这里插入图片描述
这里,先调用了Client端来获取另外一个模块先,然后根据返回值再调用自己的service,下面说一下Client端是干什么的

Client端与Api

在这里插入图片描述
整体模块大概如上所示,我个人理解这大概是一种公司规范

代码如下

在这里插入图片描述
步骤如下

  1. 使用FeignClient注解,给value加上要调用哪个服务的名字(对应配置文件里面的server.name)
  2. 继承了cmpt-api模块的api接口**(调用的方法全在api接口里面,所以client是不需要写任何方法的)**

因为要继承cmpt-api模块的api接口,所以记得在Base模块导入cmpt-api模块的依赖,公司规范是对外开发的API是另一个新建模块

下面贴上api代码

在这里插入图片描述
里面其实对其他模块开放的接口,对应的实现类就是在被调用模块的Rest里
在这里插入图片描述
进入到Rest其实就是进入另一个模块里面了

Cmpt模块代码

我们直接从Rest来进入到Cmpt模块

在这里插入图片描述
注意,这个实现类里面的接口要跟Api里面一致的,另一个模块被调用的具体服务就在里面

Service层代码

在这里插入图片描述
我这里是方法里面就执行另一个模块服务而已,这里不太规范,直接执行了SQL,应该是要放在Repository层实现的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值