它能够在运行时动态生成getter,setter方法,以及equals()、hashCode()、toString()这些方法;
类级别的@Data注解就是由Lombok提供的,它会告诉Lombok生成所缺失的方法,同时还会生成所有以final属性作为参数的构造器。
IDEA使用Lombok必须要导入与IDEA版本号(启动时显示界面中有)完全匹配的包;
Eclipse导入成功后bin目录下会有lombok.jar的文件;
Spring tool suite右键单击pom.xml找到spring=>editstarters=>https://start.spring.io=>选择Lombok导入即可;
@slf4j(simple logging facade for java)这也是Lombok提供的注解;
相当于
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(DesignTacoController.class)
spring支持java的bean校验API(Bean validation API,也被称为JSR-303)。这样的话,我们就能够更容易声明校验规则,而不必在应用程序中显示编写声明逻辑。借助SpringBoot,要在项目中添加校验库,我们甚至不需要做任何特殊的操作。这是因为Validation API以及Validation API的Hibernate实现将会作为SpringBoot-Web-starter的传递性依赖自动添加到项目中。
声明校验规则
保证name属性不能为空或null,它使用@NotNull和@Size注解来声明这些校验规则
@Data
public class Taco{
@NotNull
@Size(min=5,message="Name must be at least 5 characters long")
private String name;
@Size(min=1,message="You must choose at least 1 ingredient")
private List<String> ingredients;
@NotBlack(message="Street is required")
private String street;
@CreditCardNumber(message="Not a valid credit card number") //合法的信用卡号码
private String ccNumber;
@Pattern(regexp="^(0[1-9]|1[0-2])([\\/])([1-9][0-9])$",message="Must be formatted MM/YY")
private String ccException;
@Digits(integer=3,fraction=0,message="Invalid CVV") //它的值包含三位数字
private String ccCVV;
}
在表单绑定的时候进行校验
让表单在Post提交至对应的控制器方法时执行对应的校验。@Valid注解会告诉SpringMVC要对提交的Taco对象进行校验,而校验时机是在它绑定完成表单数据之后、调用processDesign()之前。如果存在校验错误,那个这个方法将不会处理Taco对象并返回“design”视图名,表单会重复展现。
@PostMapping
public String processDesign(@Valid Taco design,Errors errors){
if(errors.hasErrors()){
return "design";
}
log.info("processing design:"+design);
return "redict:/orders/current";
}
展现校验的错误
<label for="ccNumber">Credit Cart #:</label>
<input type="text" th:field="*{ccNumber}"/>
<span class="validationError"
th:if="${#fields.hasErrors('ccNumber')}"
th:errors="*{ccNumber}" >
CC Num Error
</span>
标签:实体类,String,--,校验,private,Bean,API,message,Lombok From: https://blog.51cto.com/u_15890333/5883977