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

信息管理系统网站开发怎样为网站做外链

信息管理系统网站开发,怎样为网站做外链,阿里云主机 wordpress,海航科技网站建设🛠️ 一、JSR 303是什么? JSR 303(Java Specification Requests 303)是Java EE 6的子规范,全称​​Bean Validation​​。它通过注解方式对JavaBean的属性值进行标准化校验,例如检查非空、长度、格式等规则…

🛠️ 一、JSR 303是什么?

JSR 303(Java Specification Requests 303)是Java EE 6的子规范,全称​​Bean Validation​​。它通过注解方式对JavaBean的属性值进行标准化校验,例如检查非空、长度、格式等规则。其参考实现是​​Hibernate Validator​​(与Hibernate ORM无关)

​核心价值​​:
✅ 将校验逻辑从业务代码剥离,提升代码可维护性
✅ 统一校验规则,避免重复编码
✅ 支持编译时和运行时校验,增强数据安全性(防止恶意绕过前端校验)


⚙️ 二、快速入门:基础使用

1️⃣ 环境搭建
  • ​Spring Boot项目​​:添加依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
</dependency>
  • ​非Spring项目​​:需手动引入validation-apihibernate-validator
2️⃣ 常用内置注解
注解适用类型说明示例
@NotNull任意值不能为null@NotNull(message="ID不能为空")
@NotBlankString非null且去除空格后长度>0@NotBlank(message="用户名必填")
@Size集合/String长度在指定范围内@Size(min=6, max=20, message="密码需6-20位")
@EmailString邮箱格式校验@Email(message="邮箱格式无效")
@PatternString正则表达式匹配@Pattern(regexp="^1[3-9]\\d{9}$", message="手机号格式错误")
@Min/@Max数字类型数值范围限制@Min(value=18, message="年龄需≥18")
3️⃣ 在Controller中使用

通过@Valid@Validated触发校验:

@PostMapping("/user")
public ResponseEntity<String> createUser(@Valid @RequestBody UserDTO user) {// 校验通过才执行业务逻辑return ResponseEntity.ok("创建成功");
}
  • 校验失败会抛出MethodArgumentNotValidException,需全局异常处理

⚡ 三、进阶技巧

1️⃣ 分组校验

解决同一字段在不同场景(如新增/修改)下的差异化校验需求:

// 定义分组接口
public interface AddGroup {}
public interface UpdateGroup {}// 实体类中使用
public class User {@Null(groups = AddGroup.class, message = "新增时ID必须为空")@NotNull(groups = UpdateGroup.class, message = "修改时ID不能为空")private Long id;
}// Controller指定分组
@PostMapping("/update")
public R update(@Validated(UpdateGroup.class) @RequestBody User user) {// ...
}

注:未分组的注解在分组校验中不生效

2️⃣ 自定义校验

​步骤​​:

  1. ​定义注解​​:
    @Target({ElementType.FIELD})
    @Retention(RetentionPolicy.RUNTIME)
    @Constraint(validatedBy = ListValueConstraintValidator.class)
    public @interface ListValue {String message() default "值不在可选范围内";Class<?>[] groups() default {};Class<? extends Payload>[] payload() default {};int[] vals() default {};  // 允许的值列表,如[0,1]
    }

  2. ​实现校验器​​:
    public class ListValueConstraintValidator implements ConstraintValidator<ListValue, Integer> {private Set<Integer> set = new HashSet<>();@Overridepublic void initialize(ListValue constraintAnnotation) {for (int val : constraintAnnotation.vals()) {set.add(val);}}@Overridepublic boolean isValid(Integer value, ConstraintValidatorContext context) {return set.contains(value);}
    }

  3. ​使用自定义注解​​:
    @ListValue(vals = {0, 1}, message = "状态只能是0或1")
    private Integer status;


💎 四、常见问题

  • ​Q:@Valid vs @Validated?​

    • @Valid(JSR标准):不支持分组,可嵌套校验字段。
    • @Validated(Spring扩展):支持分组,不可用于字段
  • ​Q:校验失败如何获取具体错误?​
    在Controller参数中添加BindingResult result,通过result.getFieldErrors()遍历错误详情

  • ​Q:为什么int类型推荐用Integer?​
    @Min等注解在基本类型(如int)上无法处理空值,而Integer可兼容null校验


📚 总结

JSR 303通过​​声明式注解​​简化数据校验。初学者可逐步掌握:
1️⃣ 基础注解 → 2️⃣ Controller集成 → 3️⃣ 分组/自定义校验 → 4️⃣ 全局异常处理
结合Spring生态(如Spring MVC)能极大提升开发效率和系统健壮性

更多实践参考:Hibernate Validator文档或Spring官方教程。

http://www.dtcms.com/a/440487.html

相关文章:

  • 无锡网站开发电话哪个医学网站大夫可以做离线题
  • 台州公司做网站建设银行内部网站6
  • 做推广必须知道的网站网站建设课程设计心得体会
  • 南京哪家做网站比较好四川省城乡建设网网站
  • 网站建设及优化东莞网页设计
  • 注册网站卖东西国家为何要求所有网站均须备案
  • 电脑做系统教学网站制作网页案例
  • 汕头网站建设推广价格上海网站建设制作
  • 思政部网站建设总结牡丹江整站优化
  • 企业网站制作公司合肥谷歌代理
  • 福州高端网站建设服务网络公司贸易网站有哪些
  • 菲律宾(Philippines)地理、区域与气候全览(菲律宾介绍)
  • 陕西省交通建设集团公司西商分公司网站写作网站哪个最好
  • 建站房的公司佛山中英文网站制作
  • 企业网站建设应用研究论文凡科轻站官网
  • 专业的外贸网站建设公司排名1688阿里巴巴网官网下载
  • 浅谈 Base64 编码与解码:原理、变体及实践
  • 做网站都有备案吗计算机网站建设是什么
  • 做兼职的网站本溪网站建设公司
  • 皖icp合肥网站建设网站图片防盗连怎么做
  • 用php做电商网站有哪些ppt制作入门教程
  • 微网站设计企业百度关键字怎么搜到公司网站
  • 网站平台开发公司建造师个人业绩查询系统
  • 韩雪个人网站网站建设方案书1500
  • 做网站排名的网站软件定制开发制作
  • 南昌做网站的wordpress页面布局插件
  • 企业网站 手机网站 app 微网站中国有色金属建设协会网站
  • 做旅游网站的需求分析万维网的代表网站
  • 寿光网站建设开发制作一个简单网页html
  • 台州seo网站推广高唐做网站建设公司