内容简介:Jboot 是一个基于 JFinal、JFinal-Undertow、Dubbo、Seata、Sentinel、ShardingSphere、Nacos 等开发的微服务框架,帮助开发者降低微服务开发门槛。同时完美支持在 idea、eclipse 下多 maven 模块,对 java 代码、...
Jboot 是一个基于 JFinal、JFinal-Undertow、Dubbo、Seata、Sentinel、ShardingSphere、Nacos 等开发的微服务框架,帮助开发者降低微服务开发门槛。同时完美支持在 idea、eclipse 下多 maven 模块,对 java 代码、html、css、js 等资源文件进行热加载。爽爽开发,快乐生活。
到目前为止,Jboot 已经开源超过了 4 年的时间,迭代了 160+ 个版本,已经被超过 1000+ 公司在使用,其中包含了多个知名的上市公司。
Jboot V3.7.5 增强 Jboot 的验证方式,在 Jboot 之前的 @EmptyValidate、@RegexValidate 等基础上,进一步基于 JSR 303 – Bean Validation 简化了验证方式,相比 Spring 更加优雅简单。
@NotNull 验证
在 Controller (或 Service 等)中,我们可以直接通过 @NotNull 注解给 Controller 添加,例如:
public void test(@NotNull String para) {
renderText("test6");
}
可能你说,在参数中添加 @NotNull 在 Spring 也支持呀,但是如果使用 @Size 等验证,Spring 是无法直接给参数添加的,比如:
public void test(@Size(min=2,max=10) String para) {
renderText("test6");
}
这个要做要求前端传入的 para 参数的长度必须是在 2 ~ 10 直接。
@Size 验证
@Size 验证,不仅仅可以验证 String 数据的长度,也可以验证 int long 等数据类型的值的大小范围。比如:
public void test(@Size(min=2,max=10) int value) {
renderText("test6");
}
这个要求 value 的值必须在 2 ~ 10 直接。
当然,我们还可以使用 @Size 来验证 Map/List/数组的长度,比如配合 @JsonBody 来接收前端传入的值:
public void list(@Size(min=2,max=10) @JsonBody() List<MyBean> list) {
System.out.println("list--->" + list);
renderText("ok");
}
要求前度传入的 MyBean Json 数组的长度必须是在 2~10 之间。
@NotEmpty 验证
@NotEmpty 不仅仅可以验证 String 类型不能为 null 和 空字符串,也可以验证 Map、List、数组等不能为空,比如:
public void list(@NotEmpty() @JsonBody() List<MyBean> list) {
System.out.println("list--->" + list);
renderText("ok");
}
要求前端掺入的 MyBean Json 数组必须有值。
@Valid 验证
@Valid 是针对整个 Java Bean 验证,也可以对 JFinal 的 Model 进行验证。的 MyBean Json 数
比如 MyBean 定义如下:
public class MyBean {
private String id;
@NotBlank(message = "密码不能为空")
private String password;
@Size(min=0,max=2,message = "性别的值只能是 0 1 2")
private int sex;
@Min(value = 18,message = "未成年禁止入内")
private Integer age;
}
在 Controller 或者 Service 中,如下代码可以直接对 MyBean 进行验证:
public void test(@Valid() MyBean bean) {
renderText("test6");
}
如果 MyBean 是一个 JFinal 的 Model,我们只需要在 getter 方法添加注解即可。
除了以上的基本示例以外,Jboot 的验证还支持了更多的验证:
注解 | 说明 |
---|---|
@NotNull | 限制必须不为null |
@DecimalMax(value) | 限制必须为一个不大于指定值的数字 |
@DecimalMin(value) | 限制必须为一个不小于指定值的数字 |
@Digits(integer,fraction) | 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction |
@Max(value) | 限制必须为一个不大于指定值的数字 |
@Min(value) | 限制必须为一个不小于指定值的数字 |
@Pattern(value) | 限制必须符合指定的正则表达式 |
@Size(max,min) | 限制字符长度必须在min到max之间 |
@NotEmpty | 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) |
@NotBlank | 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格 |
验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式 |
在使用在写验证注解中,我们不仅仅在 Controller 里进行对 http 请求数据进行验证,一样可以在 Service (provider)中对传入的参数进行验证。
在前端中,如果出现验证失败,会返回如下的 Json 内容(可以通过配置 ErrorRender 来修改掉如下的内容):
{
"throwable": "io.jboot.components.valid.ValidException: 必须小于或等于200",
"errorMessage": "age max value is 200, but current value is 1001 at method: io.jboot.test.validate.ValidateController.test17(int)",
"errorCode": 400,
"state": "fail",
"message": "必须小于或等于200"
}
在 Service 中验证失败会向外抛出 ValidException 异常。
当然还有更多的功能此处不再一一举例,欢迎给位小伙伴使用 Jboot 开发的时候爽起来。
开发文档:
https://jbootprojects.gitee.io/docs/
同时,Jboot 官方也推出了企业级开发框架 JbootAdmin,详情 https://jbootprojects.gitee.io/docs/jbootadmin/
maven 依赖:
<dependency>
<groupId>io.jboot</groupId>
<artifactId>jboot</artifactId>
<version>3.7.5</version>
</dependency>
Hello World:
@RequestMapping("/")
public class HelloworldController extends JbootController {
public void index(){
renderText("hello world");
}
public static void main(String[] args){
JbootApplication.run(args);
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 全网最全 Dalvik 指令集解析 !
- 全网最全 | MySQL EXPLAIN 完全解读
- 全网最全Flutter常用工具类
- 全网最通透的 Java 8 版本特性讲解
- 全网首发!Laravel 远程代码执行漏洞 POC
- IPv6全网大改造真的来了
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Apache Tomcat 6高级编程
Vivek Chopra、Sing Li、Jeff Genender / 人民邮电出版社 / 2009-3 / 79.00元
《Apache Tomcat 6高级编程》全面介绍了安装、配置和运行Apache Tomcat服务器的知识。书中不仅提供了配置选项的逐行分析,还探究了Tomcat的特性和功能,可以帮助读者解决出现在系统管理的各个阶段的各种问题,包括共享主机、安全、系统测试和性能测试及调优。 《Apache Tomcat 6高级编程》重点讲解Tomcat 6的应用知识。从基本的Tomcat和Web应用程序配置......一起来看看 《Apache Tomcat 6高级编程》 这本书的介绍吧!
在线进制转换器
各进制数互转换器
RGB CMYK 转换工具
RGB CMYK 互转工具