小编wil*_*ing的帖子

外行人的术语中的春季传播例子

Spring文档在描述事务传播属性方面做得非常出色.

但是,我想知道是否有任何众所周知的现实世界的例子可以用外行的方式更全面地描述这些属性?

java spring annotations transactional propagation

22
推荐指数
1
解决办法
7282
查看次数

记录Spring HATEOAS API

是否有任何插件(类似于Swagger)提供了记录HATEOAS API的能力?

Swagger界面相当不错,但它没有3级REST支持.

api documentation rest spring-hateoas

11
推荐指数
1
解决办法
1202
查看次数

Javascript最佳实践 - 使用服务器端值

在过去的几年里,我总是使用客户端隐藏<input>字段来存储服务器端值并在Javascript域中使用它.

例如,假设我需要从我的应用配置中获取Ajax超时值.

我可能会在我的JSP中存储它:

<input type="hidden" id="ajaxTimeout" value="${serverValue}" />

然后使用它像我的AJAX调用住在外部文件中:

$("#ajaxTimeout").val()
Run Code Online (Sandbox Code Playgroud)

我今天正在讨论这个问题,并建议最好的做法是存储仅在HTML <meta>标记中由Javascript使用的值.
这有关系吗?有没有一种首选的方法来获取仅用于Javascript的服务器端信息?
我的理解是,如果隐藏的输入字段不是表单的一部分,那么用它来存储值是安全的,因为它不会附加到任何请求.话虽如此,我一直认为这确实是一个黑客攻击.

思考?

::编辑::
两个梦幻般的答案:

html javascript server-side client-side hidden-field

7
推荐指数
1
解决办法
1083
查看次数

将 PersistenceExceptionTranslationPostProcessor 与 Spring 的 JdbcTemplate 一起使用是否有意义?

标题不言自明。

PersistenceExceptionTranslationPostProcessor 是仅用于 JPA 实现还是与 Spring 的 JdbcTemplate 一起使用也相关?

如果需要两个数据源,每个数据源都有自己的 JPA 实体管理器和事务管理器,我是否仍然只需要为整个应用程序指定一个 PersistenceExceptionTranslationPostProcessor ?

spring hibernate jdbc spring-data spring-data-jpa

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

Reactive Streams:Spring WebFlux - 订阅现有发布者

我目前正在将现有的Spring异步REST架构迁移到Spring的新WebFlux库,并且有一个关于加入多个请求的问题,以便他们可以监听相同的已发布响应.

用例如下:

  1. 客户端A连接到我们的Web服务器并请求数据
  2. 我们点击缓存来检查我们是否有数据
  3. 我们没有,所以我们去检索这些数据(客户A已订阅并等待响应)
  4. 客户端B连接到我们的Web服务器并请求相同的数据(命中相同的端点)
  5. 我们检查缓存,数据仍然不存在
  6. 由于我们已经为客户A提取此数据,因此我们不想再提出请求,但我们也不希望将客户B转移.客户B应该能够收听相同的信息

客户端B如何订阅客户端A等待的相同响应流?

java spring reactive-streams reactive spring-webflux

3
推荐指数
1
解决办法
1388
查看次数

Hazelcast IMap-并发更新到相同的键,但值不同

没有测试,因为我被困在火车上,电池没电了...

我需要确定Hazelcast的IMap并发更新是否是线程安全的,更新同一密钥但该密钥的值不同。

例如:

假设我有2个不同的线程更新相同的IMap密钥...

出于所有意图和目的,此映射如下所示:

  key: {value1: 1, value2: 2}
Run Code Online (Sandbox Code Playgroud)

一个线程说,

  "I am updating value1 to 3"
Run Code Online (Sandbox Code Playgroud)

另一个线程说(同时)

  "I am updating value2 to 4".
Run Code Online (Sandbox Code Playgroud)

Hazelcast如何处理呢?

最终结果将如下所示吗?

  key: {value1: 3, value2: 4}
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading hazelcast

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

正确使用 Hazelcast EntryProcessor

我们正在尝试找出在不使用悲观锁定的情况下使用 Hazelcast 的 IMap 的最佳方法。

EntryProcessor 似乎是正确的选择,但是我们需要应用两种不同类型的操作:当 containsKey 为假时“创建”,以及当 containsKey 为真时“更新”。

我如何利用 EntryProcessor 来支持这些逻辑检查?

如果两个线程同时命中 containsKey() 并且返回 false 给它们,我不希望它们都创建密钥。我希望第二个线程改为应​​用更新。

这是我们到目前为止所拥有的:

public void put(String key, Object value) {

    IMap<String, Object> map = getMap();

    if (!map.containsKey(key)) {
           // create key here
    } else {
        // update existing value here
        // ...
        map.executeOnKey(key, new TransactionEntryProcessor({my_new_value}));
    }
}

private static class MyEntryProcessor implements
        EntryProcessor<String, Object>, EntryBackupProcessor<String, Object>, Serializable {

    private static final long serialVersionUID = // blah blah

    private static final ThreadLocal<Object> entryToSet = …
Run Code Online (Sandbox Code Playgroud)

java multithreading locking hazelcast hazelcast-imap

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