首页 > 其他分享 >创建各个业务微服务模块

创建各个业务微服务模块

时间:2022-12-14 21:34:12浏览次数:49  
标签:返回 用户名 各个 创建 用户 模块 程序清单

1. 创建用户模块 eureka模块创建好后,我们便开始创建3个业务微服务模块。首先创建用户模块user,创建好后编辑pom.xml,如程序清单15-6所示。

 

 

接着,我们把application.properties文件的扩展名改为.yml,然后添加程序清单15-7所示的配置。这里不赘述,因为和common模块的配置基本一样。

 

 

 

 

 

 

同样地,我们直接展示已经配置完成的user模块目录,如右图所示。

其中,WebConfig 类实现 WebMvcConfigurer 接口,用于把common模块中的LoginUserHandlerMethodArgumentResolver 配置到HandlerMethodArgumentResolver 中,这样自定义的LoginUser 注解才能起作用。

AddressController是用户收货地址的控制层,用于处理用户对收货地址的增删改查。

AuthController是用户的控制层,用于处理用户的注册、登录,以及用户信息的查询和修改。

entity包中存放的是用户相关的实体类,这里不赘述。

和common模块一样,mapper和service分别存放的是数据层和服务层的接口,供控制层的类调用,这里不赘述了。

 

 

 

 

 

 

 

 

 

下面举例讲解user模块中登录、注册的实现过程。看AuthController中的相应代码,如程序清单15-8所示。

 

首先在登录的方法中,通过body参数接收用户传入的用户名和密码,先校验它们是否为空,为空则返回参数错误的提示。

 

接着,调用userService的queryByUsername方法查询是否含有此用户名的账号,没有或者有多个则返回错误提示。

 

然后,通过BCrypt Password Encoder编码密码后判断其是否和数据库查询到的账号的密码匹配,不匹配则返回密码错误提示;如果匹配则生成token返回给用户,下次用户发送请求则可以带上token表明自己已经登录。 然后查看注册的代码。

 

首先还是通过body参数统一接收用户传入的用户名、密码、手机号和短信验证码信息。

 

然后判断它们是否为空,只要有一个为空就返回参数错误的提示。然后同样调用userService的queryByUsername方法查询是否有用户名相同的账号,如果有则返回“用户名已注册”。接着判断是否存在相同的手机号,以及校验手机号的格式。

 

然后判断短信验证码是否正确,这里我们设置固定的,因为短信验证码功能真正要实现的话需要租用并调用云服务商提供的接口,有兴趣的读者可以自行研究。

接着,如果前面的校验都通过了,就可以使用userService的add方法添加此账号,最后一并返回token信息。

 

标签:返回,用户名,各个,创建,用户,模块,程序清单
From: https://www.cnblogs.com/cnetsa/p/16983607.html

相关文章

  • 创建Maven项目与common模块
    1、创建Maven项目下面,我们正式开始开发项目。首先,创建一个Maven项目作为微服务的父工程,将其命名为“mall”。如图所示。  创建好后,编辑pom.xml文件,如程序清单15-1......
  • 【Node.JS 】path路径模块
      往期文章​​【Node.JS练习】考试成绩整理​​​​【Node.JS】buffer类缓冲区​​​​【Node.JS】事件的绑定与触发​​​​【Node.JS】写入文件内容​​​​【Node.JS......
  • Python13 模块
    模块创建模块直接新建一个.py文件即可,这个py文件是可执行的哦~也是可以被导入的,这个py文件就是模块。导入模块import模块名[as别名]from模块名import函数/变......
  • 【雕爷学编程】Arduino动手做(110)---JDY-31 蓝牙模块
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的......
  • ES6——模块化
    模块化模块化是指将一个大的程序文件,拆分成许多小的文件,然后将小文件组合起来。一、浏览器使用ES6模块化方式一使用script标签,将type属性设置为module,然后在s......
  • [ Linux ] 线程控制(线程创建,等待,终止)
    在上一篇我们了解了Linux下线程的相关概念。而本篇的主要内容是线程控制。线程控制包括线程的创建,线程的终止,线程等待等问题,以及线程分离和Linux常见线程安全问题。1.线程控......
  • 创建自定义Action(全局)
    创建自定义Action(全局)在D365和PowerApps里,我们都可以创建自定义的Action,然后可以通过WebAPI调用自定义业务代码。我下面写的这个全局Action,不需要任何参数,想用的时候就用......
  • 【校招VIP】【约起来】活动发布模块:产品原型——产品需求要点分析
    VIP的服务,不一样的校招。今天,我们来看商业实战项目的第二个章节,真正到模块开发里面。 第一个模块叫活动发布模块,和正常的商业项目一样,把任务分解成多个模块,从最核心的模......
  • 创建型:设计模式之建造模式(四)
     没有人买车会只买一个轮胎或者方向盘,大家买的都是一辆包含轮胎、方向盘和发动机等多个部件的完整汽车。如何将这些部件组装成一辆完整的汽车并返回给用户,这是建造者模式需......
  • 【校招VIP】线上实习 推电影 电影详情模块 前端文档周最佳
    【推电影】主要是为校招设计的年青人电影推荐平台项目,每个模块都具有亮点和难点,项目表现为手机网站应用,可嵌入小程序或APP中。恭喜来自仲恺农业工程学院的小陈同学获得本......