如何在spring中验证我的路径变量.我想验证id字段,因为它只有单个字段我不想移动到Pojo
@RestController
public class MyController {
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
public ResponseEntity method_name(@PathVariable String id) {
/// Some code
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试在路径变量中添加验证,但它仍然无效
@RestController
@Validated
public class MyController {
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
public ResponseEntity method_name(
@Valid
@Nonnull
@Size(max = 2, min = 1, message = "name should have between 1 and 10 characters")
@PathVariable String id) {
/// Some code
}
}
Run Code Online (Sandbox Code Playgroud) 初始容量和负载系数两个影响HashMap性能的参数.默认的加载因子(.75)提供了时间和空间成本之间的良好折衷.较高的值会减少空间开销,但会增加查找成本.
当一个项目被添加到该项目时HashMap,它将根据从其派生的值hashCode和该项目的桶大小分配给存储桶HashMap.要识别任何哈希映射的存储桶,请使用key.hashCode()并执行一些操作:
Bucket (index) = HashMap.indexFor(HashMap.hash(key.hashCode()),
entryArray.length)
Run Code Online (Sandbox Code Playgroud)
当哈希映射中的条目数超过加载因子和当前容量的乘积时,哈希映射将被重新哈希(内部数据结构被重建),因此哈希映射具有大约两倍的桶数.
当您重新散列并将所有内容移动到新位置(存储桶等)时,旧元素也会再次重新散列,并根据新的哈希码存储在新存储桶中.分配用于存储元素的旧空间被垃圾收集.
如果两个线程同时发现现在HashMap需要重新调整大小并且他们都试图重新调整大小可能会导致竞争条件HashMap.
在重新调整大小的过程中HashMap,存储在链表中的存储桶中的元素在迁移到新存储桶期间按顺序颠倒,因为java HashMap不会在尾部附加新元素,而是在头部附加新元素以避免尾部遍历.如果发生竞争条件,那么最终会出现无限循环.
我有以下问题: