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

智能建站系统下载二手房

智能建站系统下载,二手房,东菀高端网站建设,毕设做微课资源网站设计可以吗首发博客地址 https://blog.zysicyj.top/ 一、声明bean约束 1. 字段级别约束 不支持静态类型字段 验证引擎直接访问实例变量#xff0c;不会调用属性的访问器 在验证字节码增强的对象时#xff0c;应适用属性级别约束#xff0c;因为字节码增库无法通过反射确定字段访问 pac… 首发博客地址 https://blog.zysicyj.top/ 一、声明bean约束 1. 字段级别约束 不支持静态类型字段 验证引擎直接访问实例变量不会调用属性的访问器 在验证字节码增强的对象时应适用属性级别约束因为字节码增库无法通过反射确定字段访问 package org.hibernate.validator.referenceguide.chapter02.fieldlevel;public class Car {    NotNull    private String manufacturer;    AssertTrue    private boolean isRegistered;    public Car(String manufacturer, boolean isRegistered) {        this.manufacturer  manufacturer;        this.isRegistered  isRegistered;    }    //getters and setters...} 2. 属性级别约束 必须注释getter而不是setter这样可以限制没有设置方法的只读属性 该级别将使用属性访问策略来访问验证的值即验证引擎通过属性访问器来访问数据 不要字段和getter都加校验这样会导致校验两次 package org.hibernate.validator.referenceguide.chapter02.propertylevel;public class Car {    private String manufacturer;    private boolean isRegistered;    public Car(String manufacturer, boolean isRegistered) {        this.manufacturer  manufacturer;        this.isRegistered  isRegistered;    }    NotNull    public String getManufacturer() {        return manufacturer;    }    public void setManufacturer(String manufacturer) {        this.manufacturer  manufacturer;    }    AssertTrue    public boolean isRegistered() {        return isRegistered;    }    public void setRegistered(boolean isRegistered) {        this.isRegistered  isRegistered;    }} 容器元素约束 3.1 Iterable 在该类型上加约束时将会校验每个元素 package org.hibernate.validator.referenceguide.chapter02.containerelement.set;import java.util.HashSet;import java.util.Set;public class Car {    private SetValidPart String parts  new HashSet();    public void addPart(String part) {        parts.add( part );    }    //...} Car car  new Car();car.addPart( Wheel );car.addPart( null );SetConstraintViolationCar constraintViolations  validator.validate( car );assertEquals( 1, constraintViolations.size() );ConstraintViolationCar constraintViolation         constraintViolations.iterator().next();assertEquals(        null is not a valid car part.,        constraintViolation.getMessage());assertEquals( parts[].iterable element,        constraintViolation.getPropertyPath().toString() ); 3.2 List 也会校验每个元素 package org.hibernate.validator.referenceguide.chapter02.containerelement.list;public class Car {    private ListValidPart String parts  new ArrayList();    public void addPart(String part) {        parts.add( part );    }    //...} Car car  new Car();car.addPart( Wheel );car.addPart( null );SetConstraintViolationCar constraintViolations  validator.validate( car );assertEquals( 1, constraintViolations.size() );ConstraintViolationCar constraintViolation         constraintViolations.iterator().next();assertEquals(        null is not a valid car part.,        constraintViolation.getMessage());assertEquals( parts[1].list element,        constraintViolation.getPropertyPath().toString() ); 3.3 Map package org.hibernate.validator.referenceguide.chapter02.containerelement.map;import java.util.HashMap;import java.util.Map;import javax.validation.constraints.NotNull;public class Car {    public enum FuelConsumption {        CITY,        HIGHWAY    }    private MapNotNull FuelConsumption, MaxAllowedFuelConsumption Integer fuelConsumption  new HashMap();    public void setFuelConsumption(FuelConsumption consumption, int value) {        fuelConsumption.put( consumption, value );    }    //...} Car car  new Car();car.setFuelConsumption( Car.FuelConsumption.HIGHWAY, 20 );SetConstraintViolationCar constraintViolations  validator.validate( car );assertEquals( 1, constraintViolations.size() );ConstraintViolationCar constraintViolation         constraintViolations.iterator().next();assertEquals(        20 is outside the max fuel consumption.,        constraintViolation.getMessage());assertEquals(        fuelConsumption[HIGHWAY].map value,        constraintViolation.getPropertyPath().toString()); Car car  new Car();car.setFuelConsumption( null, 5 );SetConstraintViolationCar constraintViolations  validator.validate( car );assertEquals( 1, constraintViolations.size() );ConstraintViolationCar constraintViolation         constraintViolations.iterator().next();assertEquals(        must not be null,        constraintViolation.getMessage());assertEquals(        fuelConsumptionK[].map key,        constraintViolation.getPropertyPath().toString()); 3.4 Optional package org.hibernate.validator.referenceguide.chapter02.containerelement.optional;public class Car {    private OptionalMinTowingCapacity(1000) Integer towingCapacity  Optional.empty();    public void setTowingCapacity(Integer alias) {        towingCapacity  Optional.of( alias );    }    //...} Car car  new Car();car.setTowingCapacity( 100 );SetConstraintViolationCar constraintViolations  validator.validate( car );assertEquals( 1, constraintViolations.size() );ConstraintViolationCar constraintViolation  constraintViolations.iterator().next();assertEquals(        Not enough towing capacity.,        constraintViolation.getMessage());assertEquals(        towingCapacity,        constraintViolation.getPropertyPath().toString()); 3.5 自定义容器 package org.hibernate.validator.referenceguide.chapter02.containerelement.custom;public class Car {    private GearBoxMinTorque(100) Gear gearBox;    public void setGearBox(GearBoxGear gearBox) {        this.gearBox  gearBox;    }    //...} package org.hibernate.validator.referenceguide.chapter02.containerelement.custom;public class GearBoxT extends Gear {    private final T gear;    public GearBox(T gear) {        this.gear  gear;    }    public Gear getGear() {        return this.gear;    }} package org.hibernate.validator.referenceguide.chapter02.containerelement.custom;public class Gear {    private final Integer torque;    public Gear(Integer torque) {        this.torque  torque;    }    public Integer getTorque() {        return torque;    }    public static class AcmeGear extends Gear {        public AcmeGear() {            super( 60 );        }    }} package org.hibernate.validator.referenceguide.chapter02.containerelement.custom;public class GearBoxValueExtractor implements ValueExtractorGearBoxExtractedValue ? {    Override    public void extractValues(GearBoxExtractedValue ? originalValue, ValueExtractor.ValueReceiver receiver) {        receiver.value( null, originalValue.getGear() );    }} Car car  new Car();car.setGearBox( new GearBox( new Gear.AcmeGear() ) );SetConstraintViolationCar constraintViolations  validator.validate( car );assertEquals( 1, constraintViolations.size() );ConstraintViolationCar constraintViolation         constraintViolations.iterator().next();assertEquals(        Gear is not providing enough torque.,        constraintViolation.getMessage());assertEquals(        gearBox,        constraintViolation.getPropertyPath().toString()); 3.6 嵌套容器元素 package org.hibernate.validator.referenceguide.chapter02.containerelement.nested;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.validation.constraints.NotNull;public class Car {    private MapNotNull Part, ListNotNull Manufacturer partManufacturers             new HashMap();    //...} 4. 类级别约束 在这种情况下验证的对象不是单个属性而是完整的对象 适合依赖于对象的多个属性之间的相关性很高的场景 package org.hibernate.validator.referenceguide.chapter02.classlevel;ValidPassengerCountpublic class Car {    private int seatCount;    private ListPerson passengers;    //...} 5. 约束继承 在一个类实现接口或扩展另一个类时在超类上声明的所有约束注释都以与该类本身上指定的约束相同的方式约束 package org.hibernate.validator.referenceguide.chapter02.inheritance;public class Car {    private String manufacturer;    NotNull    public String getManufacturer() {        return manufacturer;    }    //...} package org.hibernate.validator.referenceguide.chapter02.inheritance;public class RentalCar extends Car {    private String rentalStation;    NotNull    public String getRentalStation() {        return rentalStation;    }    //...} RentalCar 不仅会校验getRentalStation而且会校验父类的getManufacturer 若继承换成接口也是会校验超类的 6. 对象图 不仅支持单个对象校验还支持级联验证 对象的级联校验 package org.hibernate.validator.referenceguide.chapter02.objectgraph;public class Car {    NotNull    Valid    private Person driver;    //...} package org.hibernate.validator.referenceguide.chapter02.objectgraph;public class Person {    NotNull    private String name;    //...} 在校验Car的时候会校验Person因此若Car引用的Person的name为空则会校验失败 容器的级联校验 package org.hibernate.validator.referenceguide.chapter02.objectgraph.containerelement;public class Car {    private ListNotNull Valid Person passengers  new ArrayListPerson();    private MapValid Part, ListValid Manufacturer partManufacturers  new HashMap();    //...} package org.hibernate.validator.referenceguide.chapter02.objectgraph.containerelement;public class Part {    NotNull    private String name;    //...} package org.hibernate.validator.referenceguide.chapter02.objectgraph.containerelement;public class Manufacturer {    NotNull    private String name;    //...} 校验Person的名字是否存在为null的 校验Part的名字是否存在为null的 校验所有的Manufacturer是否存在名字为null的 二、验证Bean约束 1. 获取验证器 2. 验证的三种方式 先来个车 class Car {    NotNull    Size(min  5,max  20)    private String manufacturer;    AssertTrue    private boolean isRegistered;    public Car(String manufacturer, boolean isRegistered) {        this.manufacturer  manufacturer;        this.isRegistered  isRegistered;    }} bean全部验证 验证单个属性 对属性的值进行验证 3. 约束违规 「内插的错误消息」 09:35:00.446 [main] INFO com.bm.validate.TestValidatorBean - 内插的错误消息只能为true 非插补的错误消息 09:35:00.446 [main] INFO com.bm.validate.TestValidatorBean - 非插补的错误消息{javax.validation.constraints.AssertTrue.message} 正在验证的根Bean 09:35:00.446 [main] INFO com.bm.validate.TestValidatorBean - 正在验证的根Beancom.bm.validate.Car7c83dc97 如果是bean约束则将约束应用到bean实例如果是属性约束则是托管该约束的属性的bean实例 09:35:00.446 [main] INFO com.bm.validate.TestValidatorBean - 如果是bean约束则将约束应用到bean实例如果是属性约束则是托管该约束的属性的bean实例com.bm.validate.Car7c83dc97 「bean验证器值的属性路径」 09:35:00.447 [main] INFO com.bm.validate.TestValidatorBean - 根bean验证器值的属性路径isRegistered **「报告约束失败的原数据」 09:35:00.447 [main] INFO com.bm.validate.TestValidatorBean - 报告约束失败的原数据false 「告约束失败的元数据」 09:35:00.447 [main] INFO com.bm.validate.TestValidatorBean - 报告约束失败的元数据ConstraintDescriptorImpl{annotationj.v.c.AssertTrue, payloads[], hasComposingConstraintstrue, isReportAsSingleInvalidConstraintfalse, elementTypeFIELD, definedOnDEFINED_LOCALLY, groups[interface javax.validation.groups.Default], attributes{groups[Ljava.lang.Class;60015ef5, message{javax.validation.constraints.AssertTrue.message}, payload[Ljava.lang.Class;2f54a33d}, constraintTypeGENERIC, valueUnwrappingDEFAULT} 三、内置约束 AssertFalse 检查带注释元素的属性为false Boolean, boolean AssertTrue 检查带注释元素的属性为True Boolean,boolean DecimalMax(value, inclusive) inclusive为false检查带注释的值是否小于指定的最大值。否则该值是否小于等于指定的最大值 BigDecimal,BigInteger,CharSequence,byte,short,int,long原始数据包装类,Number,javax.money.MonetaryAmount任意子类 DecimalMin(value, inclusive) inclusive为false检查带注释的值是否大于指定的最小值。否则该值是否大于等于指定的最小值 BigDecimal,BigInteger,CharSequence,byte,short,int,long原始数据包装类,Number,javax.money.MonetaryAmount任意子类 Digits(integer, fraction) integer 指定整数位数限制fraction指定小数位数限制 BigDecimal,BigInteger,CharSequence,byte,short,int,long原始数据包装类,Number,javax.money.MonetaryAmount任意子类 Email 是否为有效的电子邮箱地址 regexp和flags参数指定正则规则必须匹配的其它表达式 CharSequence Future 检查是否是将来的日期 java.util.Datejava.util.Calendarjava.time.Instantjava.time.LocalDatejava.time.LocalDateTimejava.time.LocalTimejava.time.MonthDayjava.time.OffsetDateTimejava.time.OffsetTimejava.time.Yearjava.time.YearMonthjava.time.ZonedDateTimejava.time.chrono.HijrahDatejava.time.chrono.JapaneseDatejava.time.chrono.MinguoDatejava.time.chrono.ThaiBuddhistDate; 如果类路径上有Joda Time日期/时间API 则由HV额外支持ReadablePartial和的任何实现ReadableInstant FutureOnPresent 检查日期是先在还是将来 java.util.Datejava.util.Calendarjava.time.Instantjava.time.LocalDatejava.time.LocalDateTimejava.time.LocalTimejava.time.MonthDayjava.time.OffsetDateTimejava.time.OffsetTimejava.time.Yearjava.time.YearMonthjava.time.ZonedDateTimejava.time.chrono.HijrahDatejava.time.chrono.JapaneseDatejava.time.chrono.MinguoDatejava.time.chrono.ThaiBuddhistDate; 如果类路径上有Joda Time日期/时间API 则由HV额外支持ReadablePartial和的任何实现ReadableInstant Max(value) 是否小于或等于该值 BigDecimalBigIntegerbyteshortintlong和原始类型的相应的包装; HV额外支持的任何子类型CharSequence评估字符序列表示的数值Number和的任何子类型javax.money.MonetaryAmount Min(value) 是否大于或等于该值 BigDecimalBigIntegerbyteshortintlong和原始类型的相应的包装; HV额外支持的任何子类型CharSequence评估字符序列表示的数值Number和的任何子类型javax.money.MonetaryAmount NotBlank 指定字符不为null并且长度大于0 CharSequence NotEmpty 指定字符不为null或为空去除尾随空格 CharSequenceCollectionMap和数组 NotNull 检查注释的值不为null 所有类型均支持 Negative 检查元素是否严格为负零被视为无效 BigDecimalBigIntegerbyteshortintlong和原始类型的相应的包装; HV额外支持的任何子类型CharSequence评估字符序列表示的数值Number和的任何子类型javax.money.MonetaryAmount NegativeOrZero 检查元素是负数或0 BigDecimalBigIntegerbyteshortintlong和原始类型的相应的包装; HV额外支持的任何子类型CharSequence评估字符序列表示的数值Number和的任何子类型javax.money.MonetaryAmount Null 检查注释的值是null 所有类型均支持 Past 检查带注释的日期是否是过去的日期 java.util.Datejava.util.Calendarjava.time.Instantjava.time.LocalDatejava.time.LocalDateTimejava.time.LocalTimejava.time.MonthDayjava.time.OffsetDateTimejava.time.OffsetTimejava.time.Yearjava.time.YearMonthjava.time.ZonedDateTimejava.time.chrono.HijrahDatejava.time.chrono.JapaneseDatejava.time.chrono.MinguoDatejava.time.chrono.ThaiBuddhistDate; 如果类路径上有Joda Time日期/时间API 则由HV附加支持ReadablePartial和的任何实现ReadableInstant PastOrPresent 检查带注释的日期是过去还是现在 java.util.Datejava.util.Calendarjava.time.Instantjava.time.LocalDatejava.time.LocalDateTimejava.time.LocalTimejava.time.MonthDayjava.time.OffsetDateTimejava.time.OffsetTimejava.time.Yearjava.time.YearMonthjava.time.ZonedDateTimejava.time.chrono.HijrahDatejava.time.chrono.JapaneseDatejava.time.chrono.MinguoDatejava.time.chrono.ThaiBuddhistDate; 如果类路径上有Joda Time日期/时间API 则由HV附加支持ReadablePartial和的任何实现ReadableInstant Pattern(regex, flags) regex考虑给定标志检查带注释的字符串是否与正则表达式匹配match CharSequence Positive 检查元素是否严格为正。零值被视为无效 BigDecimalBigIntegerbyteshortintlong和原始类型的相应的包装; HV额外支持的任何子类型CharSequence评估字符序列表示的数值Number和的任何子类型javax.money.MonetaryAmount PositiveOrZero 检查元素是否严格为正或零 BigDecimalBigIntegerbyteshortintlong和原始类型的相应的包装; HV额外支持的任何子类型CharSequence评估字符序列表示的数值Number和的任何子类型javax.money.MonetaryAmount Size(min, max) 检查带注释的元素的大小是否介于min和之间max包括 CharSequenceCollectionMap和数组 CreditCardNumber(ignoreNonDigitCharacters) 检查带注释的字符序列是否通过了Luhn校验和测试 ignoreNonDigitCharacters允许忽略非数字字符。默认值为false。 CharSequence Currency(value) 检查带注释的货币单位javax.money.MonetaryAmount是否为指定货币单位的一部分。 javax.money.MonetaryAmount DurationMax(days, hours, minutes, seconds, millis, nanos, inclusive) 检查带注释的java.time.Duration元素不大于由注释参数构造的元素。如果将inclusiveflag设置为则允许平等true java.time.Duration DurationMin(days, hours, minutes, seconds, millis, nanos, inclusive) 检查带注释的java.time.Duration元素不少于由注释参数构造的元素。如果将inclusiveflag设置为则允许平等true。 java.time.Duration EAN 检查带注释的字符序列是有效的EAN条形码。类型决定条形码的类型 CharSequence ISBN 检查带注释的字符序列是有效的ISBN CharSequence Length(min, max) 验证该注释字符序列是间min和max包含 CharSequence Range(min, max) 检查带注释的值是否介于包括指定的最小值和最大值之间 BigDecimalBigIntegerCharSequencebyteshortintlong和原始类型的相应的包装 UniqueElements 检查带注释的集合仅包含唯一元素。使用该equals()方法确定相等性。默认消息不包括重复元素的列表但是您可以通过覆盖消息并使用{duplicates}message参数来包括它。重复元素的列表也包含在约束违反的动态有效负载中。 Collection负载中。 Collection 本文由 mdnice 多平台发布
http://www.w-s-a.com/news/371609/

相关文章:

  • 盘锦网站制作工业电商网站怎么配色
  • 白云企业网站建设seo排名点击软件
  • wordpress跨站脚本攻击漏洞国外注册的域名国内能用吗
  • 西部数码网站管理助手2工信部资质查询网站
  • 公司网站哪个建的好吉林网站制作
  • 视频网站怎么引流wordpress私人玩物
  • 我的家乡湛江网站设计新钥匙网站建设
  • 辽宁网站推广爱前端wordpress5.0.3主题
  • python怎么做网站贵阳网站制作
  • 深圳网站的优化seo网络推广有哪些
  • 网站建设实习报告范文荆州市城市建设档案馆网站
  • 网站开发信息平台项目总结企业网站如何推广
  • 网站备案名称规定手机免费h5制作软件
  • 接网站建设单子的网站网页设计尺寸多大
  • 订制型网站费用做网站的问题
  • 淮阳住房和城乡建设网站桂林新闻桂林人论坛
  • 公司网站建设价格标准老版本网站开发工具
  • 门户网站开发费怎做账做网站交互demo工具
  • 中山最好的网站建设黄村网站建设价格
  • 企业网站首页应如何布局互联网营销师证书报名入口
  • 绍兴做网站哪家好篮球网站设计
  • 鹤岗市城乡建设局网站西域电商平台官网
  • 外贸网网站建设蓝色管理系统网站模版
  • 网站服务器关闭阿里巴巴logo
  • 青岛 网站制作公司乐从网站制作
  • wordpress 微网站模板怎么用wordpress 文档下载
  • ppt网站建设的目的合肥做网站找哪家好
  • wordpress站点路径redis缓存wordpress
  • 专门设计网站的公司叫什么百度 门户网站
  • 网站建设丶金手指专业旅游网站系统哪个好