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

网站开发技术期末考试试题营销策略有哪些4种

网站开发技术期末考试试题,营销策略有哪些4种,公司宣传册模板免费下载,怎么建设课程的网站Springboot参数分组校验 文章目录 Springboot参数分组校验简介代码准备单个或多个参数的校验非 JSON 格式的对象参数校验JSON 格式的对象参数校验Service 层校验项目地址 简介 Java API规范(JSR303)定义了Bean校验的标准validation-api#xff0c;但没有提供实现。hibernate …Springboot参数分组校验 文章目录 Springboot参数分组校验简介代码准备单个或多个参数的校验非 JSON 格式的对象参数校验JSON 格式的对象参数校验Service 层校验项目地址 简介 Java API规范(JSR303)定义了Bean校验的标准validation-api但没有提供实现。hibernate validation是对这个规范的实现并增加了校验注解如Email、Length等。 Spring Validation是对hibernate validation的二次封装用于支持spring mvc参数自动校验。本文基于 JDK21 和 springboot3.1.5 进行整理。 代码准备 参数校验对象以下实例都基于该对象进行。 package com.lzhch.practice.dto.req;import com.fasterxml.jackson.annotation.JsonFormat; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.Length;import java.io.Serial; import java.io.Serializable; import java.util.Date;/*** 参数分组校验入参* p* author: lzhch* version: v1.0* date: 2023/11/20 15:36*/Data Builder NoArgsConstructor AllArgsConstructor public class ParamGroupValidatedReq implements Serializable {Serialprivate static final long serialVersionUID 1L;/*** 用户ID* 内部定义接口和统一定义接口任选其一即可*/// NotNull(message 用户id不能为空, groups ParamGroupValidated.Create.class)NotNull(message 用户id不能为空) // Service 层不进行分组校验// NotNull(message 用户id不能为空, groups ParamGroupValidatedReq.Save.class)private Long userId;/*** 用户名*/NotBlank(message 用户名不能为空)Length(max 20, message 用户名不能超过20个字符)private String username;/*** 手机号*/NotBlank(message 手机号不能为空)private String mobile;/*** 性别*/private String sex;/*** 邮箱*/NotBlank(message 联系邮箱不能为空)Email(message 邮箱格式不对)private String email;/*** 密码*/private String password;/*** 创建时间*/// Future(message 时间必须是将来时间)JsonFormat(pattern yyyy-MM-dd HH:mm:ss, timezone GMT8)private Date createTime;/*** 保存的时候校验分组*/public interface Save {}/*** 更新的时候校验分组*/public interface Update {}}分组接口 import jakarta.validation.groups.Default;/*** 新增参数校验接口* p* author: lzhch* version: v1.0* date: 2023/11/20 17:20*/public interface ParamGroupValidated {/*** 在声明分组的时候加上 extend javax.validation.groups.Default* 否则, 在你声明 Validated(Update.class)的时候, 就会出现你在默认没添加 groups {} 的时候* 校验组 Email(message 邮箱格式不对) 会不去校验, 因为默认的校验组是 groups {Default.class}.*/interface Create extends Default {}interface Update extends Default {}}全局异常捕捉参数校验报错分为 MethodArgumentNotValidException 和 ConstraintViolationException。 import jakarta.validation.ConstraintViolation; import jakarta.validation.ConstraintViolationException; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.FieldError; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice;import java.util.Objects;/*** 全局异常处理* p* author: lzhch* version: v1.0* date: 2023/11/20 17:51*/Slf4j RestControllerAdvice public class GlobalExceptionHandler {/*** Controller 层参数校验** param methodArgumentNotValidException: Controller 层参数校验失败异常类型* return 统一封装的结果类, 含有代码code和提示信息msg* Author: lzhch 2023/11/21 15:13*/ExceptionHandler(MethodArgumentNotValidException.class)public String handleMethodArgumentNotValidException(MethodArgumentNotValidException methodArgumentNotValidException) {log.error(methodArgumentNotValidException.getMessage(), methodArgumentNotValidException);FieldError fieldError methodArgumentNotValidException.getBindingResult().getFieldError();if (Objects.isNull(fieldError)) {return methodArgumentNotValidException.getMessage();}return fieldError.getDefaultMessage();}/*** 捕获并处理未授权异常** param e: Service 层参数校验失败异常类型* return 统一封装的结果类, 含有代码code和提示信息msg* Author: lzhch 2023/11/21 15:13*/ExceptionHandler(ConstraintViolationException.class)public String handleConstraintViolationException(ConstraintViolationException e) {return String.join(;, e.getConstraintViolations().stream().map(ConstraintViolation::getMessageTemplate).toList());}}单个或多个参数的校验 比如根据 Id 查询、删除等无需封装成对象且无需使用 JSON 格式。 import com.alibaba.fastjson2.JSON; import com.lzhch.practice.dto.req.ParamGroupValidatedReq; import com.lzhch.practice.service.IParamGroupValidatedService; import com.lzhch.practice.validatedtype.ParamGroupValidated; import jakarta.annotation.Resource; import jakarta.validation.constraints.NotBlank; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** 参数分组校验 controller* p* author: lzhch* version: v1.0* date: 2023/11/20 17:22*/Slf4j // 用于在 Controller 层的简单校验, 比如 simple 方法 Validated RestController RequestMapping(value validated/paramGroup) public class ParamGroupValidatedController {Resourceprivate IParamGroupValidatedService paramGroupValidatedService;/*** 简单校验* 必须在 Controller 上添加 Validated 注解* 指定 groups 可以进行分组校验*/GetMapping(value simple)public void simple(NotBlank(message username 不能是空的啊!!!, groups ParamGroupValidated.Create.class) String username) {log.info(result {}, username);}}非 JSON 格式的对象参数校验 Controller 和方法参数上需要添加 Validated 注解 对象里面增加相应类型的校验注解。 /*** 非 JSON 格式的对象校验* 使用 Validated 注解的 value 属性指定分组*/ GetMapping(value simple1) public void simple1(Validated ParamGroupValidatedReq paramGroupValidatedReq) {log.info(result {}, JSON.toJSONString(paramGroupValidatedReq)); }JSON 格式的对象参数校验 不需要在 Controller 上添加 Validated 注解 JSON 格式校验只需要增加 RequestBody 注解。 /*** 统一接口分组测试新增* 使用 Validated 注解的 value 属性指定分组*/ PostMapping(value create) public void create(RequestBody Validated(value ParamGroupValidated.Create.class) ParamGroupValidatedReq paramGroupValidatedReq) {log.info(result {}, JSON.toJSONString(paramGroupValidatedReq)); }Service 层校验 以上为在 Controller 里面进行的校验接下来是 Service 层的校验代码。 接口 在接口中必须添加 Valid 以及 NotBlank 等注解, 否则报错 package com.lzhch.practice.service;import com.lzhch.practice.dto.req.ParamGroupValidatedReq; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank;/*** 分组校验接口* p* author: lzhch* version: v1.0* date: 2023/11/20 18:16*/public interface IParamGroupValidatedService {// 在接口中必须添加 Valid 以及 NotBlank 等注解, 否则报错/*** 字段校验*/void filedValidated(NotBlank(message 用户名不能为空) String username);/*** 不分组校验*/void create(Valid ParamGroupValidatedReq paramGroupValidatedReq);/*** 分组校验*/// Validated(value ParamGroupValidated.Create.class)void create1(Valid ParamGroupValidatedReq paramGroupValidatedReq);}实现类 必须给实现类添加 Validated 注解 import com.alibaba.fastjson2.JSON; import com.lzhch.practice.dto.req.ParamGroupValidatedReq; import com.lzhch.practice.service.IParamGroupValidatedService; import com.lzhch.practice.validatedtype.ParamGroupValidated; import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated;/*** 分组校验接口实现类* p* author: lzhch* version: v1.0* date: 2023/11/20 18:16*/Slf4j Service // 在接口上添加 Validated 注解, 对该类进行参数校验 Validated public class ParamGroupValidatedServiceImpl implements IParamGroupValidatedService {/*** 在方法的参数上可以直接使用 NotBlank 等注解*/Overridepublic void filedValidated(String username) {log.info(service username :{}, username);}/*** 不分组校验* 在方法上使用 Valid 注解, 采用默认分组(实体也不指定分组)* 注意:接口中方法参数必须要加 Valid 注解; 实现类中可加可不加** param paramGroupValidatedReq param* return: void* Author: lzhch 2023/11/21 14:56* Since: 1.0.0*/Overridepublic void create(Valid ParamGroupValidatedReq paramGroupValidatedReq) {log.info(service result :{}, JSON.toJSONString(paramGroupValidatedReq));}/*** 分组校验* 在不分组校验的基础上对方法添加使用 Validated 注解, 并指定分组* 注意:接口中方法参数必须要加 Valid 注解; Validated 可在接口中也可在实现类中; 不能只在实现类中添加两个注解** param paramGroupValidatedReq param* return: void* Author: lzhch 2023/11/21 14:55* Since: 1.0.0*/OverrideValidated(value ParamGroupValidated.Create.class)public void create1(ParamGroupValidatedReq paramGroupValidatedReq) {log.info(service result :{}, JSON.toJSONString(paramGroupValidatedReq));}}项目地址 SpringBoot3-Practice/ParamGroupValidated at main · lzhcccccch/SpringBoot3-Practice (github.com)
http://www.hkea.cn/news/14571927/

相关文章:

  • 做个网站需要多少钱?有没有旧装修要拆wordpress模板源码
  • 马鞍山的网站建设公司开封建网站的公司
  • 青岛外贸假发网站建设做网站要素
  • 合肥建网站的公司谷歌网站质量指南
  • 做搜狗手机网站点学网站开发好找工作吗
  • 做美食直播哪个网站最好wordpress摘要过滤
  • 河西做网站备案中心查网站
  • 东莞汽车网站建设建设阅读网站的研究意义
  • 怎么宣传自己的网站推广做网站上传服务器
  • 网站简介 更改怎么制作小程序教程
  • 做好网站优化的方法有哪些?室内设计学校培训的
  • 为什么手机进网站乱码wordpress分类静态
  • 罗湖区做网站的公司学生做爰网站
  • 一个人做网站 知乎优化英文
  • 桂林网页制作网络优化工程师是干什么的
  • 网站开发需要20万定州哪里可以做网站
  • 优质作文网站网站所有者是什么意思
  • 网站建设自查工作做网站用什么语言编写
  • 信创网站wordpress首页调用页面文章的内容
  • 启航做网站怎么样不花钱网站怎么做推广
  • 手机网站开发教程建e网模型
  • 古风网站建设模板下载宁波网站优化体验
  • 响应式网站设计的优点长沙正规关键词优化价格从优
  • 苏州网站建设系统方案上海虹口建设局官方网站
  • 网站建设相关费用预算推广微信官网网站
  • 湛江建设部网站erp软件有哪些
  • 一般做网站需要什么框架福田瑞沃售后服务电话
  • 汕头澄海网站建设杰奇网站地图怎么做
  • 济宁天元建设集团有限公司关键词优化简易
  • 专业网站建设公司地址网站对企业的好处