创建各个业务微服务模块

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信息。

 

posted @   cnetsa  阅读(185)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示