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

小公司建设网站搜索引擎优化seo课程总结

小公司建设网站,搜索引擎优化seo课程总结,网站建设推广是什么意思,重庆景点门票价格一览表现象: 自定义注解使用 方法: 1:元注解 java.lang.annotation 下定义了元注解 Documented 文档相关 标注了此注解则会包含在javadoc文档中Retention 指定注解生命周期Target 指定注解作用范围Inherited 指定子类可以继承父类的注解Native …

现象:

自定义注解使用

方法:

1:元注解
java.lang.annotation 下定义了元注解

  • @Documented 文档相关 标注了此注解则会包含在javadoc文档中
  • @Retention 指定注解生命周期
  • @Target 指定注解作用范围
  • @Inherited 指定子类可以继承父类的注解
  • @Native 指定字段是常量
  • @Repeatable 指定在一个地方可以重复使用同一个注解

2:元注解 @Retention 生命周期

  • SOURCE: 只保留在源文件
  • CLASS: 保留到class文件
  • RUNTIME: 运行时也存在

3:元注解 @Target 作用范围

  • TYPE——接口、类、枚举、注解
  • FIELD——字段、枚举的常量
  • METHOD——方法
  • PARAMETER——方法参数
  • CONSTRUCTOR ——构造函数
  • LOCAL_VARIABLE——局部变量
  • ANNOTATION_TYPE——注解
  • PACKAGE——包,用于记录java文件的package信息

4:新建java类选择注解@Annitation

在这里插入图片描述

5:示例建立MyAnnitation注解

在这里插入图片描述
6:使用:
在这里插入图片描述

二:实例使用:

需求:自定义注解校验请求参数只能是指定值
比如 请求接口 type 参数 只能是"1"、“2”、“3”

方法:
1:引入validation校验jar包

   <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>

2:建立自定义注解
自定义注解范围 :字段、枚举的常量、方法参数
使用@Constraint 指定校验逻辑的类

@Target({ElementType.PARAMETER,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(validatedBy = EnumRangeValidator.class)
public @interface CheckEnum {// 校验能输入的值String[] rang();// 错误提示String message() default "输入的内容不在规定范围";// 名称固定参数:校验分组信息Class<?>[] groups() default {};// 名称固定参数:加载的负载Class<? extends Payload>[] payload() default {};}

3:建立校验逻辑的类EnumRangeValidator


public class EnumRangeValidator implements ConstraintValidator<CheckEnum,String> {private String[] range;@Overridepublic void initialize(CheckEnum constraintAnnotation) {// 初始化将注解中的枚举内容放数组rangerange=constraintAnnotation.rang();}@Overridepublic boolean isValid(String request, ConstraintValidatorContext constraintValidatorContext) {// 判断输入的值在不在 注解设置的范围if(StringUtils.isNotBlank(request)){if(range!=null && range.length>0){return Arrays.asList(range).contains(request);}}return false;}
}

4:全局异常监听控制返回
这里简单返回String 实际开发中应该定义全局返回对象

@Slf4j
@RestControllerAdvice
public class GlobalExceptionHandler<T> {@ResponseBody@ResponseStatus(HttpStatus.OK)@ExceptionHandler({MethodArgumentNotValidException.class})private String argumentsNotValid(MethodArgumentNotValidException e) {try {var fieldError = e.getBindingResult().getFieldError();var defaultMessage = fieldError.getDefaultMessage();log.error("参数校验不通过 ", e);return defaultMessage;} catch (NullPointerException exception) {log.error("fieldError 为空", e);return "参数异常";}}@ResponseBody@ResponseStatus(HttpStatus.OK)@ExceptionHandler(ConstraintViolationException.class)private String multiArgumentNotValid(ConstraintViolationException e) {var constraintViolations = e.getConstraintViolations();var reduce =constraintViolations.stream().map(ConstraintViolation::getMessage).reduce((x, y) -> x + " " + y).orElse("");log.error("参数校验不通过 ", e);return reduce;}
}

5:请求入参对象EnumValidRequest

@Data
@NoArgsConstructor
@AllArgsConstructor
public class EnumValidRequest {/*** @NotBlank 不能为空校验*/@NotBlank(message = "id不能为空!")private String id;private String name;/*** 设置类型  值只能是1、2、3* 使用自定义枚举校验 类型只能传值1、2、3*/@CheckEnum(rang = {"1","2","3"})private String type;
}

6:请求接口test/check/enum
使用定义的EnumValidRequest 作为参数

@Slf4j
@RestController
@RequestMapping("/test")
@Validated
public class RequestController {@PostMapping("/check/enum")public String getA(@Valid @RequestBody EnumValidRequest request){log.debug("a请求执行:{}",request);return "A";}}

7:启动项目 访问接口test/check/enum

  • 输入的type不在范围时返回:
    在这里插入图片描述
  • 不传id时返回:
    在这里插入图片描述
  • 正常参数访问返回:
    在这里插入图片描述
http://www.tj-hxxt.cn/news/40786.html

相关文章:

  • 怎么样做网站推广磁力搜索引擎哪个好
  • 怎么做王者荣耀网站百度指数怎样使用
  • 网站实用性网站维护
  • 网站导航广告怎么做百度关键词优化的意思
  • 定制软件开发报价seo优化关键词0
  • 庆云县建设局网站seo研究协会网是干什么的
  • 重庆九龙坡区网站建设关键词排名seo
  • 锦州市做网站制作一个网页的步骤
  • 企业网站建设定位注意的问题艾滋病多久可以查出来
  • 珠海市住房城乡建设局网站网站排名提高
  • 开发微信公众平台商城seo营销推广服务公司
  • 网站改版 百度影响网站推广怎么推广
  • 全球著名室内设计公司排名seo网站内容优化有哪些
  • 做网站赚钱靠谱吗外贸网站营销推广
  • 枣庄手机网站制作成都网站建设技术外包
  • 个人手机版网站建设百度pc端首页
  • 北京网站建设好吗windows优化大师官方网站
  • wordpress网站百度不收录外贸网站优化推广
  • b站 的网站 怎么做aso网站
  • 网站建设500错误代码seo网络优化师就业前景
  • 四川省建设厅网站打不开销售的技巧与口才
  • 泰安网站建设推广广告公司怎么找客户资源
  • 教育网站怎么做弹窗的网络营销师证书含金量
  • 网站建设哪家专业百度网页版 入口
  • 没营业执照怎么做网站seo外包公司哪家好
  • 网站编辑seo国外最好的免费建站
  • 苏州网站制作计划刷关键词排名软件
  • 东莞seo优化公司seo手机优化软件哪个好用
  • 网站制作问题 图片版权微商推广哪家好
  • 哪家做网站的官方app下载安装