Spring Cloud微服务之公共服务模块抽取(五)

前言

在实际开发过程中,我们的服务会分为很多个模块,这样分的好处是,系统维护的复杂性大大降低,以及编码时接口的规范性,便于我们方便阅读代码,理清项目的各个模块所负责的功能。比如我们使用swagger测试接口,是不是会在很多个模块进行使用,这样我们可以把它单独放在一个模块,其他模块要使用的时候,直接来拿,这样是不是大大简化了开发配置,以及提高了开发效率,再比如,你文件上传,和用户信息CRUD都放在一个模块开发,是不是感觉不合适,微服务的思想:有多个服务,把一个项目拆分成多个独立的服务,多个服务是独立运行的,每个服务占用独立的进程。 所以能拆即拆,模块化开发的思想设计。

在父工程中parent模块下创建子模块common

也是一个空的Maven项目,创建方式和service模块一样,删除src全部
在这里插入图片描述

在common模块下创建comon_utils子模块

主要是公共部分对后台数据返回值进行统一封装,这样其他模块也使用的时候,直接来取就好了,创建也是一个空的Maven项目,不过创建的时候注意项目路径,有时候idea可能找的不对,创建的时候需要手动修改。
在这里插入图片描述
比如这个路径:F:\SpringBoot_Project\itydf_parent\common_utils 这样就不对,应该是F:\SpringBoot_Project\itydf_parent\common\common_utils 还有一级目录common,这样才对,那就手动修改地址。
在这里插入图片描述
修改之后finish生成的结构如下,打开pom.xml文件,这里是不对的。(反正我生成的不对,需要修改红色箭头这两处)
在这里插入图片描述
修改成如下,就是artifactId节点应该是common模块,relativePath路径、common_utils模块下面没有模块了,所以应该不用添加了,直接删除

<parent>
   <artifactId>common</artifactId>
   <groupId>com.itydf</groupId>
   <version>0.0.1-SNAPSHOT</version>
</parent>

为common模块的pom.xml文件添加依赖,提供给comon_utils子模块使用

common_utils模块可能创建的时候不会引入,手动添加一下。

<modules>
    <module>common_utils</module>
</modules>

<dependencies>

    <!--spring-boot-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <scope>provided </scope>
    </dependency>

    <!--mybatis-plus-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <scope>provided </scope>
    </dependency>

    <!--lombok用来简化实体类:需要安装lombok插件-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <scope>provided </scope>
    </dependency>

</dependencies>

common_utils下java目录下创建com.itydf.commonutils这个包

在这里插入图片描述

返回结果的统一封装

ResultCode.java

***
 * 返回结果接口自定义返回状态代码
 */
public interface ResultCode {

    public static Integer SUCCESS = 20000; //成功2000

    public static Integer ERROR = 2001;  //失败2001
}

ResultBean.java

/***
 * 返回结果的统一封装
 */

@Data
public class ResultBean {

    private Boolean success;  //是否成功

    private Integer code;     //返回状态码

    private String message;   //返回消息提示

    private Map<String, Object> data = new HashMap<String, Object>(); //返回数据

    private ResultBean(){}

    public static ResultBean ok(){
        ResultBean r = new ResultBean();
        r.setSuccess(true);
        r.setCode(ResultCode.SUCCESS);
        r.setMessage("成功");
        return r;
    }

    public static ResultBean error(){
        ResultBean r = new ResultBean();
        r.setSuccess(false);
        r.setCode(ResultCode.ERROR);
        r.setMessage("失败");
        return r;
    }

    public ResultBean success(Boolean success){
        this.setSuccess(success);
        return this;
    }

    public ResultBean message(String message){
        this.setMessage(message);
        return this;
    }

    public ResultBean code(Integer code){
        this.setCode(code);
        return this;
    }

    public ResultBean data(String key, Object value){
        this.data.put(key, value);
        return this;
    }

    public ResultBean data(Map<String, Object> map){
        this.setData(map);
        return this;
    }
}

使用测试

在service_user模块中使用common_utils模块已经封装好的统一返回值方法。

  • 首先在service_user模块的pom.xml中引入common_utils依赖。
<dependencies>
   <dependency>
       <groupId>com.itydf</groupId>
       <artifactId>common_utils</artifactId>
       <version>0.0.1-SNAPSHOT</version>
       <scope>compile</scope>
   </dependency>
</dependencies>

如下图所示:
在这里插入图片描述

CrmUserController.java中编写测试

我们修改上一篇说到的那个查询所有用户信息的接口

 /***
  * 查询用户所有信息
  * @return
  */
 @GetMapping(value = "list")
 public ResultBean findAll(){
     return ResultBean.ok().data("data",crmUserService.list(null)); //无条件,查询所有
 }

输入地址:http://localhost:9901/eduservice/crm-user/list,如下也成功了。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DT辰白

你的鼓励是我创作的源泉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值