bean validator 主要是验证一个 bean 的各字段是否满足一些约束,例如 @NotNull bean validation 有个规范 jsr 380,里边定义了一堆 api。有很多规范的实现,最常用的是 hibernate validator,jersey 出的 jersey-bean-validation 也是基于 hibernate validator 做的。 bean validator 一般是应用在 web 框架(如 spring、jersey)上,框架在反序列化 rest 请求到 bean 对象时,框架会调用 validator 根据 bean 对象的 annotation 对 bean 进行验证。 这个过程也可以手动进行。可参考 hibernate validator: get started。 引入依赖 1 2 3 4 5 6 7 8 // jsr 380 api compile "javax.validation:validation-api:2.0.1.Final" // hibernate vaidator 实现 testCompile "org.hibernate.validator:hibernate-validator:6.0.10.Final" // hibernate validator 依赖的 JSR 341 实现 te
Read more »

泛型 java 泛型存在类型擦除(参见 java 泛型) 1 2 3 4 List l1 = new ArrayList(); List l2 = new ArrayList(); System.out.println(l1.getClass() == l2.getClass()); // return true, 两个都是 List.class 获取运行时泛型类型 类型擦除使得根据类定义获取 runtime 泛型类型是不可能的,一般有几种方法(参见 stackoverflow): 1. 根据类对象实例获取,可参见 handle java generic types with reflection * eg. Class tClass = (Class) ReflectionUtil.getClass(ReflectionUtil.getParameterizedTypes(this)[0]); 2. 从父类中获取(要求父类有相同的泛型参数) * eg. Class tClass = (Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments
Read more »

使用 aws serverless java container 实现。 使用 aws cli 创建项目,配置 aws cli 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # 利用原型创建项目 $ mvn archetype:generate -DgroupId=my.service -DartifactId=my-service -Dversion=1.0-SNAPSHOT \ -DarchetypeGroupId=com.amazonaws.serverless.archetypes \ -DarchetypeArtifactId=aws-serverless-jersey-archetype \ -DarchetypeVersion=1.1.3 # 安装 aws cli $ pip install awscli # 配置 credentials $ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-
Read more »

1. 最基本的js写法是:不管是要调用项目内或项目外的其他文件的方法,都是直接在当前文件中调用,然后在web文件(html)中利用