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

制作一个网站需要多长时间wordpress retina

制作一个网站需要多长时间,wordpress retina,成都响应式网站建设,汶上公司网站建设文章目录 1.基本准备#xff08;构建一个SpringBoot模块#xff09;1.在A_universal_solution模块下创建新的子模块unified-processing2.pom.xml引入基本依赖3.编写springboot启动类4.启动测试 2.统一响应处理1.首先定义一个响应枚举类 RespBeanEnum.java 每个枚举对象都有co… 文章目录 1.基本准备构建一个SpringBoot模块1.在A_universal_solution模块下创建新的子模块unified-processing2.pom.xml引入基本依赖3.编写springboot启动类4.启动测试 2.统一响应处理1.首先定义一个响应枚举类 RespBeanEnum.java 每个枚举对象都有code和message2.然后定义一个响应的Bean RespBean.java 可以调用响应枚举类进行响应3.测试使用1.目录结构2.ResponseTest.java3.浏览器测试1.成功响应不携带数据。2.成功响应携带数据。3.失败响应不携带数据。4.失败响应携带数据。5.测试withData方法。6.测试withMessage方法。 3.自定义校验器1.首先编写一个Bean测试使用LoginVo.java2.需求分析自定义校验器来校验手机号和密码 3.通用校验器模板1.定义通用校验器接口 GenericValidatorInterface.java2.自定义校验注解 GenericValidation.java3.通用校验器实现类 GenericValidatorImpl.java4.使用方式1.需求分析2.将模板复制一份放到validator包下准备进行修改3.要校验的字段为Integer类型也就是修改value类型4.注解中的value是int数组类型也就是修改annotationValue的类型5.修改三个类的名字前缀为Test直接修改然后alter enter 让IDEA自动修改6.TestValidatorImpl.java编写校验逻辑7.修改LoginVo.java 添加测试校验字段8.编写controller加上Valid字段进行校验9.测试 4.统一异常处理器整合自定义校验器1.编写自定义异常携带响应枚举对象 CustomException.java2.编写全局异常处理器 GlobalExceptionHandler.java3.最佳实践1.当需要响应error时直接抛出自定义异常对象指定响应枚举对象2.此时当出现参数绑定异常时也会交给统一异常处理解决3.当出现其他异常时就会响应服务端异常控制台也会打印错误信息 1.基本准备构建一个SpringBoot模块 1.在A_universal_solution模块下创建新的子模块unified-processing 2.pom.xml引入基本依赖 project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersion!-- 继承spring-boot父模块 --parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.5.4/versionrelativePath/ !-- 如果交给父模块统一管理但是又要继承springboot的父模块就必须加这个 --/parentartifactIdunified-processing/artifactIdpackagingjar/packagingnameunified-processing/nameurlhttp://maven.apache.org/url!-- 解决java: -source 1.5 中不支持 diamond 运算符 问题 --propertiesjava.version1.8/java.versionmaven.compiler.source1.8/maven.compiler.sourcemaven.compiler.target1.8/maven.compiler.target/propertiesdependencies!--validation 参数校验--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-validation/artifactIdversion2.4.5/version/dependency!-- springboot两个常规配置 --!-- spring-boot-starter-web --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- spring-boot-starter-test --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!-- lombok也是常规配置 --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency!-- jupiter测试 --dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-api/artifactIdversion5.7.2/versionscopecompile/scope/dependency/dependencies!-- maven打包插件--buildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build /project 3.编写springboot启动类 package com.sun.solution;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;/*** Description:** Author sun* Create 2024/5/6 13:00* Version 1.0*/ SpringBootApplication public class UnifiedApplication {public static void main(String[] args) {SpringApplication.run(UnifiedApplication.class, args);} } 4.启动测试 2.统一响应处理 1.首先定义一个响应枚举类 RespBeanEnum.java 每个枚举对象都有code和message package com.sxs.seckill.vo;import lombok.AllArgsConstructor; import lombok.Getter; import lombok.ToString;/*** Description: 响应枚举类** Author sun* Create 2024/5/5 15:15* Version 1.0*/Getter AllArgsConstructor ToString public enum RespBeanEnum {// 通用SUCCESS(200, SUCCESS),ERROR(500, 服务端异常),//登录模块LOGIN_ERROR(500210, 用户名或者密码错误),MOBILE_ERROR(500211, 手机号码格式不正确),BING_ERROR(500212, 参数绑定异常),MOBILE_NOT_EXIST(500213, 手机号码不存在),PASSWORD_UPDATE_FAIL(500214, 更新密码失败);//其他模块。。。// 响应码和响应信息private final Integer code;private final String message; } 2.然后定义一个响应的Bean RespBean.java 可以调用响应枚举类进行响应 package com.sxs.seckill.vo;import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors;/*** 通用响应数据封装类。* 提供了构造函数和静态方法来创建响应对象支持链式调用来设置属性。*/ Getter Setter Accessors(chain true) // 支持链式调用 public class RespBean {private long code;private String message;private Object data;/*** 默认构造函数。*/public RespBean() {}/*** 构造函数初始化响应码和消息。* param code 响应码。* param message 响应消息。*/public RespBean(long code, String message) {this.code code;this.message message;}/*** 构造函数初始化响应码、消息和数据。* param code 响应码。* param message 响应消息。* param data 响应数据。*/public RespBean(long code, String message, Object data) {this.code code;this.message message;this.data data;}/*** 成功响应携带数据。* param data 响应数据。* return 生成的成功响应对象。*/public static RespBean success(Object data) {return new RespBean(RespBeanEnum.SUCCESS.getCode(), RespBeanEnum.SUCCESS.getMessage(), data);}/*** 成功响应不携带数据。* return 生成的成功响应对象。*/public static RespBean success() {return new RespBean(RespBeanEnum.SUCCESS.getCode(), RespBeanEnum.SUCCESS.getMessage(), null);}/*** 错误响应只携带错误枚举。* param respBeanEnum 错误枚举包含错误码和消息。* return 生成的错误响应对象。*/public static RespBean error(RespBeanEnum respBeanEnum) {return new RespBean(respBeanEnum.getCode(), respBeanEnum.getMessage(), null);}/*** 错误响应携带错误枚举和额外数据。* param respBeanEnum 错误枚举包含错误码和消息。* param data 额外数据。* return 生成的错误响应对象。*/public static RespBean error(RespBeanEnum respBeanEnum, Object data) {return new RespBean(respBeanEnum.getCode(), respBeanEnum.getMessage(), data);}/*** 设置响应数据。* param data 响应数据。* return 当前对象支持链式调用。*/public RespBean withData(Object data) {this.data data;return this;}/*** 设置响应消息。* param message 响应消息。* return 当前对象支持链式调用。*/public RespBean withMessage(String message) {this.message message;return this;} } 3.测试使用 1.目录结构 2.ResponseTest.java package com.sun.solution.conroller;import com.sun.solution.unified_response_processing.RespBean; import com.sun.solution.unified_response_processing.RespBeanEnum; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** Description:** Author sun* Create 2024/5/6 13:07* Version 1.0*/ RestController public class ResponseTest {/*** 成功响应不携带数据。** return*/RequestMapping(/success1)public RespBean success1() {return RespBean.success();}/*** 成功响应携带数据。** return*/RequestMapping(/success2)public RespBean success2() {return RespBean.success(成功响应携带数据。);}/*** 失败响应不携带数据。** return*/RequestMapping(/error1)public RespBean error1() {return RespBean.error(RespBeanEnum.ERROR);}/*** 失败响应携带数据。** return*/RequestMapping(/error2)public RespBean error2() {return RespBean.error(RespBeanEnum.ERROR, 失败响应携带数据。);}/*** 测试withData方法** return*/RequestMapping(/withData)public RespBean withData() {return RespBean.error(RespBeanEnum.ERROR).withData(测试withData方法);}/*** 测试withMessage方法** return*/RequestMapping(/withMessage)public RespBean withMessage() {return RespBean.error(RespBeanEnum.ERROR).withMessage(测试withMessage方法);}} 3.浏览器测试 1.成功响应不携带数据。 2.成功响应携带数据。 3.失败响应不携带数据。 4.失败响应携带数据。 5.测试withData方法。 6.测试withMessage方法。 3.自定义校验器 1.首先编写一个Bean测试使用LoginVo.java package com.sun.solution.vo;import lombok.Data;/*** Description:** Author sun* Create 2024/5/6 13:29* Version 1.0*/ Data public class LoginVo {private String mobile;private String password; }2.需求分析 自定义校验器来校验手机号和密码 3.通用校验器模板 1.定义通用校验器接口 GenericValidatorInterface.java package com.sun.solution.validator;/*** Description: 通用校验器接口用于重新定义校验方法使其更加灵活** Author sun* Create 2024/5/6 13:34* Version 1.0*/public interface GenericValidatorInterface {/*** 校验接口* param value 待校验的值根据情况自定义类型* param annotationValue 注解中的value值根据情况自定义类型* param required 是否必填* return*/boolean isValid(String value, String annotationValue, boolean required); } 2.自定义校验注解 GenericValidation.java package com.sun.solution.validator;import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.*;/*** Description: 自定义校验注解** Author sun* Create 2024/5/6 13:38* Version 1.0*/ Documented Constraint(validatedBy GenericValidatorImpl.class) // 1.这里是校验器的实现类 Target({ ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER }) Retention(RetentionPolicy.RUNTIME) public interface GenericValidation {// 2.这里是注解的属性// message是校验失败时的提示信息String message() default 校验失败;// value是注解的值可以根据情况自定义类型类型改变则校验器也需要改变String value() default ;// required是是否必填boolean required() default true;// 下面这两个属性必须添加是默认属性Class?[] groups() default {};Class? extends Payload[] payload() default {}; } 3.通用校验器实现类 GenericValidatorImpl.java package com.sun.solution.genericvalidator;import org.springframework.util.StringUtils;import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext;/*** Description: 通用校验器实现类ConstraintValidatorTestValidation, String中的两个参数分别是注解和校验的值类型** Author sun* Create 2024/5/6 13:42* Version 1.0*/ public class GenericValidatorImpl implements ConstraintValidatorGenericValidation, String, GenericValidatorInterface {// 注解中的value值根据情况自定义类型private String annotationValue;// 注解中的required值表示是否必填private boolean required;/*** 初始化方法获取注解中的value值和required值* param annotation*/Overridepublic void initialize(GenericValidation annotation) {this.annotationValue annotation.value();this.required annotation.required();}/*** 初始的校验方法* param value* param context* return*/Overridepublic boolean isValid(String value, ConstraintValidatorContext context) {return isValid(value, annotationValue, required);}/*** 增强的校验方法* param value 待校验的值* param annotationValue 注解中的value值根据情况自定义类型* param required 是否必填* return*/Overridepublic boolean isValid(String value, String annotationValue, boolean required) {// 校验逻辑编写根据三个参数进行校验return false;} } 4.使用方式 1.需求分析 假设要校验的字段类型是Integer类型注解中的value是int数组类型 2.将模板复制一份放到validator包下准备进行修改 3.要校验的字段为Integer类型也就是修改value类型 GenericValidatorInterface.java GenericValidatorImpl.java 4.注解中的value是int数组类型也就是修改annotationValue的类型 GenericValidation.java GenericValidatorImpl.java GenericValidatorInterface.java 5.修改三个类的名字前缀为Test直接修改然后alter enter 让IDEA自动修改 6.TestValidatorImpl.java编写校验逻辑 /*** 增强的校验方法* param value 待校验的值* param annotationValue 注解中的value值根据情况自定义类型* param required 是否必填* return*/Overridepublic boolean isValid(Integer value, int[] annotationValue, boolean required) {// 如果不是必填项且值为空则直接返回trueif (!required value null) {return true;}// 如果是必填项且值为空则直接返回falseif (required value null) {return false;}// 如果注解中的value值不为空且待校验的值不在value值中则返回falseif (annotationValue.length 0) {for (int i : annotationValue) {if (value i) {return true;}}return false;}return true;}7.修改LoginVo.java 添加测试校验字段 package com.sun.solution.vo;import com.sun.solution.validator.TestValidation; import lombok.Data;/*** Description:** Author sun* Create 2024/5/6 13:29* Version 1.0*/ Data public class LoginVo {private String mobile;private String password;TestValidation(value {1, 2, 3}, required true)private Integer test; }8.编写controller加上Valid字段进行校验 package com.sun.solution.conroller;import com.sun.solution.unified_response_processing.RespBean; import com.sun.solution.vo.LoginVo; import org.springframework.web.bind.annotation.*;import javax.validation.Valid;/*** Description:** Author sun* Create 2024/5/6 14:56* Version 1.0*/ RestController public class ValidationTest {PostMapping(/test)public RespBean test(Valid RequestBody LoginVo loginVo) {return RespBean.success(success!);} } 9.测试 4.统一异常处理器整合自定义校验器 1.编写自定义异常携带响应枚举对象 CustomException.java package com.sun.solution.exception;import com.sun.solution.unified_response_processing.RespBeanEnum; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;/*** Description: 自定义异常类具有响应枚举的属性。** Author sun* Create 2024/5/6 15:15* Version 1.0*/ Data NoArgsConstructor AllArgsConstructor public class CustomException extends RuntimeException{private RespBeanEnum respBeanEnum; } 2.编写全局异常处理器 GlobalExceptionHandler.java package com.sun.solution.exception;import com.sun.solution.unified_response_processing.RespBean; import com.sun.solution.unified_response_processing.RespBeanEnum; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.BindException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice;/*** Description:** Author sun* Create 2024/5/6 15:16* Version 1.0*/ RestControllerAdvice Slf4j public class GlobalExceptionHandler {// 处理所有的异常ExceptionHandler(Exception.class)public RespBean exceptionHandler(Exception e) {// 日志记录异常信息及堆栈log.error(Exception caught: , e); // 如果得到的是自定义异常的对象那么直接返回这个异常的响应枚举类信息if (e instanceof CustomException) {CustomException ex (CustomException) e;return RespBean.error(ex.getRespBeanEnum());} else if (e instanceof BindException) {// 如果是绑定异常就获取绑定异常的message信息返回给前端// 需要获取改异常 BindException进行打印BindException ex (BindException) e;// 获取绑定异常的信息RespBean respBean RespBean.error(RespBeanEnum.BING_ERROR).withMessage(参数校验异常 ex.getBindingResult().getAllErrors().get(0).getDefaultMessage());return respBean;}// 如果不是自定义异常那么返回服务端异常return RespBean.error(RespBeanEnum.ERROR);} } 3.最佳实践 1.当需要响应error时直接抛出自定义异常对象指定响应枚举对象 2.此时当出现参数绑定异常时也会交给统一异常处理解决 3.当出现其他异常时就会响应服务端异常控制台也会打印错误信息
http://www.w-s-a.com/news/783220/

相关文章:

  • 出口网站制作好一点的网站建设
  • 在小说网站做编辑怎么找韶关市建设局网站
  • 网站策划怎么做内容旅游型网站建设
  • 东莞百度网站推广ppt模板免费下载的网站
  • 网站建设项目管理基本要求网站空间到期影响
  • 做奖杯的企业网站谁有推荐的网址
  • wordpress能做企业站吗wordpress收发邮件
  • 电子产品网站建设策划方案腾讯企业邮箱注册申请免费
  • 哪些网站可以免费做代码自己电脑做网站服务器广域网访问
  • 高端网站设计青海省教育厅门户网站学籍查询
  • 长春网站优化公司网站制作400哪家好
  • 县级门户网站建设的报告开发游戏的软件有哪些
  • 做电子商务的网站wordpress带会员中心
  • 网站域名不变网站可以从做吗网站建设步骤 文档
  • 网站建设中 gif互联网新项目在哪里找
  • 做外包网站猎头公司英文
  • 房屋结构自建设计 网站海淀教育互动平台
  • 网络营销比赛 营销型网站策划热门搜索关键词
  • 网站建设图片代码网络设计师工资
  • 福建网站开发适合交换友情链接的是
  • 企业门户网站建站内乡微网站开发
  • 在线做logo印章网站一般到哪个网站找数据库
  • 哪些网站做免费送东西的广告6郑州人流医院哪家好
  • 高端做网站哪家好sem技术培训
  • 网站做等保是按照什么定级别的做网站的资源哪里找
  • 免费建站网页无需登陆潍坊高端模板建站
  • 北京php网站建设软通动力外包值得去吗
  • 优酷 做视频网站还能成功吗光谷做网站推广哪家好
  • 培训学校网站建设方案网站开发方案设计
  • 网站开发分支结构外贸网站做推广