序言
今天没写什么东西。
挺迷茫的,确实应该设计设计才开始写代码。看画个原型图什么的。
决定:前后端同步编码。现在就是设计一下系统。
前端vue正在学习中,今天也看了10p。
所以编码的工作应该得放到前端学得差不多得时候了。
在这期间,我会想想系统还需要哪些基本得插件、功能,比如导出excel啊这些。想到了就加进来。然后会学习一下,业务代码生成这一块(主要是前端的代码吧,后端有plus了)。
今天就搞了一下数据校验,然后晚上给系统搞了个banner图
XpStart–2022-4-10
数据校验
springboot给我们提供了数据校验的功能,但是其不能实现嵌套对象的验证,因为@Validated不能作用于类属性上,所以需要引入@Valid的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
那么@Validated和@Valid有什么区别呢?
@Validated:可以作用于类、方法、方法参数上,并且提供了分组1功能
@Valid:可以作用于方法、方法参数、类属性上
常用校验注解(参考:校验注解)
注解 | 说明 |
---|---|
@Null | 带注释的元素必须为null 。 接受任何类型。 |
@NotNull | 带注释的元素不能为null 。 接受任何类型。 |
@AssertFalse | 带注释的元素必须为false。 支持的类型是boolean和Boolean 。null元素被视为有效。 |
@AssertTrue | 带注释的元素必须为true。 支持的类型是boolean和Boolean 。null元素被视为有效。 |
@DecimalMax | 带注释的元素必须是一个数字,其值必须小于或等于指定的最大值。 支持的类型为: BigDecimal BigInteger CharSequence byte , short , int , long及其各自的包装器 请注意,由于舍入错误,不支持double和float (某些提供程序可能提供一些近似支持)。 null元素被视为有效。 |
@DecimalMin | 带注释的元素必须是一个数字,其值必须大于或等于指定的最小值。 支持的类型为: BigDecimal BigInteger CharSequence byte , short , int , long及其各自的包装器 请注意,由于舍入错误,不支持double和float (某些提供程序可能提供一些近似支持)。 null元素被视为有效。 |
@Digits | 带注释的元素必须是可接受范围内的数字。 支持的类型为: BigDecimal BigInteger CharSequence byte , short , int , long及其各自的包装器类型 null元素被视为有效。 |
该字符串必须是格式正确的电子邮件地址。 组成有效电子邮件地址的确切语义留给Jakarta Bean验证提供程序。 接受CharSequence 。null元素被视为有效。 |
|
@Future | 带注释的元素必须是将来的瞬间,日期或时间。null元素被视为有效。 |
@FutureOrPresent | 带注释的元素必须是当前或将来的瞬间,日期或时间。null元素被视为有效。 |
@NotEmpty | 带注释的元素不能为null或为空。 支持的类型为: CharSequence (评估字符串的长度) Collection (评估集合大小) Map (评估Map大小) 数组(评估数组长度) |
@NotBlank | 带注释的元素不能为null并且必须至少包含一个非空白字符。 针对字符串 |
@Max | 带注释的元素必须是一个数字,其值必须小于或等于指定的最大值。 支持的类型为: BigDecimal BigInteger byte , short , int , long及其各自的包装器 请注意,由于舍入错误,不支持double和float (某些提供程序可能提供一些近似支持)。 null元素被视为有效。 |
@Min | 带注释的元素必须是一个数字,其值必须大于或等于指定的最小值。 支持的类型为: BigDecimal BigInteger byte , short , int , long及其各自的包装器 请注意,由于舍入错误,不支持double和float (某些提供程序可能提供一些近似支持)。 null元素被视为有效。 |
Banner图
这是banner.txt的内容,给字体设置了一个颜色
${AnsiColor.BLUE}
指定banner字体颜色;
${AnsiBackground.BRIGHT_GREEN}
指定banner背景色,
这里有一个在线制作Banner网站制作banner
${AnsiColor.BLUE}
__ __ _____ _ _
\ \ / / / ___| | | |
\ V / _ __ \ `--.| |_ __ _ _ __| |_
/ \| '_ \ `--. \ __/ _` | '__| __|
/ /^\ \ |_) /\__/ / || (_| | | | |_
\/ \/ .__/\____/ \__\__,_|_| \__|
| |
|_|
启动类:
public class XpStartApplication {
public static void main(String[] args) {
SpringApplication.run(XpStartApplication.class, args);
// [后:31红色,32绿色,33黄色,34蓝色,35紫色
System.out.format("\33[35;4m---------------------启动成功---------------------");
}
}
效果:
所谓分组,就是一个类的校验规则在不同的接口下,可能会不同。这个时候就可以对其“特殊字段”进行分组,其使用也很简单,可参考@Validated分组 ↩︎