当前位置: 首页 > article >正文

2.微服务-配置

引入springcloud的pom配置

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.12</version><relativePath/></parent>
<dependencyManagement><dependencies><!--spring cloud--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!--spring cloud alibaba--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency>
</dependencyManagement>

注意:

1.引入springcloud相关的type都是pom类型的。

2.springboot与springcloud的版本匹配。

<properties><spring-cloud.version>2021.0.3</spring-cloud.version><spring-cloud-alibaba.version>2021.0.4.0</spring-cloud-alibaba.version>
</properties>

商场项目的模块划分

1.用户模块

2.商品模块

3.购物车模块

4.订单模块

5.支付模块

登录功能代码学习

验证前端传入接口的参数

定义登录请求DTO对象,验证每个参数功能

<dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-validator</artifactId></dependency>

@NotNull 

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;import javax.validation.constraints.NotNull;@Data
@ApiModel(description = "登录表单实体")
public class LoginFormDTO {@ApiModelProperty(value = "用户名", required = true)@NotNull(message = "用户名不能为空")private String username;@NotNull(message = "密码不能为空")@ApiModelProperty(value = "用户名", required = true)private String password;@ApiModelProperty(value = "是否记住我", required = false)private Boolean rememberMe = false;
}

@Validated注解来验证 

@ApiOperation("用户登录接口")@PostMapping("login")public UserLoginVO login(@RequestBody @Validated LoginFormDTO loginFormDTO){return userService.login(loginFormDTO);}

lambdaQuery()方法根据某个字段查询DB

mybatisplus中 Service层实现了IService接口后就拥有此功能

// 2.根据用户名或手机号查询
User user = lambdaQuery().eq(User::getUsername, username).one();

定义一个枚举

注意@EnumValue注解

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.hmall.common.exception.BadRequestException;
import lombok.Getter;@Getter
public enum UserStatus {FROZEN(0, "禁止使用"),NORMAL(1, "已激活"),;@EnumValueint value;String desc;UserStatus(Integer value, String desc) {this.value = value;this.desc = desc;}public static UserStatus of(int value) {if (value == 0) {return FROZEN;}if (value == 1) {return NORMAL;}throw new BadRequestException("账户状态错误");}
}

对应数据库表中设计

`status` int DEFAULT '1' COMMENT '使用状态(1正常 2冻结)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',

对应java程序的写法

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.hmall.user.enums.UserStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;import java.io.Serializable;
import java.time.LocalDateTime;@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("user")
public class User implements Serializable {private static final long serialVersionUID = 1L;/*** 使用状态(1正常 2冻结)*/private UserStatus status;/*** 创建时间*/private LocalDateTime createTime;private LocalDateTime updateTime;
}

枚举对象可以直接使用==来比较

        // 3.校验是否禁用if (user.getStatus() == UserStatus.FROZEN) {throw new ForbiddenException("用户被冻结");}

http://www.lryc.cn/news/2379766.html

相关文章:

  • python实现pdf转图片(针对每一页)
  • C语言练手磨时间
  • 数字图像处理——图像压缩
  • 验证器回调中value值没有数据
  • Python | 需求预测模型
  • 双指针算法:原理与应用详解
  • 打造灵感投掷器:我的「IdeaDice」开发记录
  • 2025ICPC邀请赛南昌游记
  • python重庆旅游系统-旅游攻略
  • MySQL企业版免费开启,强先体验
  • 从纸质契约到智能契约:AI如何改写信任规则与商业效率?​——从智能合约到监管科技,一场颠覆传统商业逻辑的技术革命
  • 常见的 HTTP 接口(请求方法)
  • iOS 抓包实战:从 Charles 到Sniffmaster 的日常工具对比与使用经验
  • Lodash isEqual 方法源码实现分析
  • Qt Widgets模块功能详细说明,基本控件:QCheckBox(三)
  • 第四天的尝试
  • 【git进阶】git rebase(变基)
  • WPS中代码段的识别方法及JS宏实现
  • 小米MUJIA智能音频眼镜来袭
  • 【神经网络与深度学习】GAN 生成对抗训练模型在实际训练中很容易判别器收敛,生成器发散
  • 基于SpringBoot的家政预约系统
  • [服务器备份教程] Rclone实战:自动备份数据到阿里云OSS/腾讯云COS等对象存储
  • 使用 Whisper 生成视频字幕:从提取音频到批量处理
  • Axure难点解决分享:垂直菜单展开与收回(4大核心问题与专家级解决方案)
  • Linux:网络层的重要协议或技术
  • 【Hadoop 实战】Yarn 模式上传 HDFS 卡顿时 “No Route to Host“ 错误深度解析与解决方案
  • JAVA请求vllm的api服务报错Unsupported upgrade request、 Invalid HTTP request received.
  • 基于 CSS Grid 的网页,拆解页面整体布局结构
  • 华为云Astro轻应用创建业务对象(BO)的概念梳理
  • 利用systemd启动部署在服务器上的web应用