JSR-380通过注释参数化类型添加了对验证容器元素(内部集合,可选)的支持:
List<@Email String> emails;
Run Code Online (Sandbox Code Playgroud)
有没有办法在控制器方法的Spring MVC的当前版本(例如Spring MVC 4.3.8)中使用它?我已升级到Hibernate Validator 6.0.2和Validation API 2.0.0,但我似乎无法使用以下示例,我不确定这是否是我滥用注释,缺少配置或缺乏支持在框架中:
@RequestMapping(value = "/emails", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE)
public void emails(@Valid @RequestBody List<@Email String> emails) {
}
@RequestMapping(value = "/users", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE)
public void users(@Valid @RequestBody List<@Valid User> users) {
}
Run Code Online (Sandbox Code Playgroud)
(用户对某些属性有@NotNull注释)
在@RequestBody注释之前,我曾尝试使用和不使用@Valid.
我已经为Android(Cordova)项目编写了许多JUnit测试,到目前为止,我已经能够从gradle命令行和Android Studio(1.2.2)中运行它们.
当我添加一些加载属性文件(使用this.getClass().getClassLoader().getResourceAsStream())的代码时,代码在android设备上工作,测试仍然从gradle命令行运行,当我在Android Studio中运行测试时,getResourceAsStream()返回null.
有没有人成功地以这种方式加载属性文件,然后在Android Studio中测试它们?
cordova项目的gradle配置包含此设置以设置测试源集:
subprojects {
if (project.hasProperty("android")) {
android.sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
}
test {
java.srcDir file('test')
resources.srcDir file('test')
}
}
}
Run Code Online (Sandbox Code Playgroud)
我意识到在单元测试中加载属性文件不是最佳实践,但由于该项目的性质,我想使用属性文件而不是模拟值.