小编iva*_*ylo的帖子

@Valid 在没有控制器的情况下使用 jackson 创建对象时

我有一个模型,当从前端发送请求时,我在控制器中使用 @Valid 进行验证:

@NotNull
@Size(min=1, message="Name should be at least 1 character.")
private String name;

@NotNull
@Pattern(regexp = "^https://github.com/.+/.+$", message = "Link to github should match https://github.com/USER/REPOSITORY")
private String github;
Run Code Online (Sandbox Code Playgroud)

但现在我也在用杰克逊的 ObjectMapper 创建一个没有控制器的对象。有没有办法在 ObjectMapper 中注册这个验证,或者我应该只检查 setter 中的变量?

java spring jackson

9
推荐指数
1
解决办法
5324
查看次数

边框和内容之间的奇怪空白

我只在特定 px(屏幕尺寸)处看到 div 边框和 chrome 中的导航之间的空白区域。我也在小提琴中看到它,所以我没有任何额外的代码。http://jsfiddle.net/u13f2xwd/ 在 stackoverflow 中的运行代码片段中也会发生同样的情况,只有当我将其展开到整页时才会看到空白。

在此处输入图片说明

*{
  padding: 0;
  margin: 0;
  font-size: 0;
  line-height: 0;
}
div{
  min-height: 100vh;
  border: 0.5vw solid red;
  width: 100%;
  box-sizing: border-box;
}
nav{
  background: black;
  height: 11vh;
}
Run Code Online (Sandbox Code Playgroud)
<div>
  <nav>
  </nav>
</div>
Run Code Online (Sandbox Code Playgroud)

html css

6
推荐指数
1
解决办法
105
查看次数

更新到 gradle 5.1.1 和项目到 java 11 后无法构建项目。无效的类型代码

因此,我使用 gradlew 包装器 --gradle-version=5.1.1 --distribution-type=bin 命令更新了 gradle,并将项目上的 java jdk 从 8 更改为 11,但 gradle 不想构建我得到原因:无效键入代码:CD 和此异常:

java.lang.AbstractMethodError: Receiver class org.jetbrains.plugins.gradle.tooling.util.ModuleComponentIdentifierImpl does not define or inherit an implementation of the resolved method abstract getModuleIdentifier()Lorg/gradle/api/artifacts/ModuleIdentifier; of interface org.gradle.api.artifacts.component.ModuleComponentIdentifier.
    at org.gradle.api.internal.artifacts.ivyservice.resolutionstrategy.DefaultCachePolicy.mustRefreshModule(DefaultCachePolicy.java:205)
    at org.gradle.api.internal.artifacts.ivyservice.resolutionstrategy.DefaultCachePolicy.mustRefreshModule(DefaultCachePolicy.java:192)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository$LocateInCacheRepositoryAccess.resolveComponentMetaDataFromCache(CachingModuleComponentRepository.java:212)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository$LocateInCacheRepositoryAccess.resolveComponentMetaData(CachingModuleComponentRepository.java:185)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.lambda$resolveComponentMetaData$3(ErrorHandlingModuleComponentRepository.java:159)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.lambda$tryResolveAndMaybeBlacklist$15(ErrorHandlingModuleComponentRepository.java:228)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.tryResolveAndMaybeBlacklist(ErrorHandlingModuleComponentRepository.java:242)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.tryResolveAndMaybeBlacklist(ErrorHandlingModuleComponentRepository.java:227)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.performOperationWithRetries(ErrorHandlingModuleComponentRepository.java:220)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.resolveComponentMetaData(ErrorHandlingModuleComponentRepository.java:158)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ComponentMetaDataResolveState.process(ComponentMetaDataResolveState.java:69)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ComponentMetaDataResolveState.resolve(ComponentMetaDataResolveState.java:48)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.findBestMatch(RepositoryChainComponentMetaDataResolver.java:138)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.findBestMatch(RepositoryChainComponentMetaDataResolver.java:119)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.resolveModule(RepositoryChainComponentMetaDataResolver.java:92)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.resolve(RepositoryChainComponentMetaDataResolver.java:63)
    at org.gradle.api.internal.artifacts.query.DefaultArtifactResolutionQuery.buildComponentResult(DefaultArtifactResolutionQuery.java:166)
    at org.gradle.api.internal.artifacts.query.DefaultArtifactResolutionQuery.createResult(DefaultArtifactResolutionQuery.java:144)
    at org.gradle.api.internal.artifacts.query.DefaultArtifactResolutionQuery.execute(DefaultArtifactResolutionQuery.java:135)
    at org.jetbrains.plugins.gradle.tooling.util.DependencyResolverImpl.resolveDependencies(DependencyResolverImpl.java:207)
    at org.jetbrains.plugins.gradle.tooling.util.DependencyResolverImpl.resolveDependencies(DependencyResolverImpl.java:307)
    at org.jetbrains.plugins.gradle.tooling.util.DependencyResolver$resolveDependencies.call(Unknown …
Run Code Online (Sandbox Code Playgroud)

java gradle

5
推荐指数
1
解决办法
1万
查看次数

线程安全是否意味着没有竞争条件?

ConcurrentHashMap是线程安全的,但是会发生竞争情况,因为据我了解,仅映射的一部分被锁定并且仅用于写操作,这意味着如果同时存在读取操作,则将存在竞争条件。

但是我也喜欢在这里阅读https://en.wikipedia.org/wiki/Thread_safety

Thread safe: Implementation is guaranteed to be free of race conditions when accessed by multiple threads simultaneously.
Run Code Online (Sandbox Code Playgroud)

我可以说ConcurrentHashMap是线程安全的,但没有完全同步吗?这里正确的术语是什么?

java multithreading thread-safety race-condition thread-synchronization

2
推荐指数
1
解决办法
92
查看次数