Java 流 API 提供了一种通用.reduce(identity, accumulator)
方法。
从 javadocs 中可以清楚地看出累加器应该是一个无状态函数。
但是,我有一个关于identity
对象的问题,即它应该是线程安全的吗?
假设 anidentity
是一个 java 对象,并且 anaccumulator
以修改不是原子的方式修改该对象,例如accumulator
查看identity's
状态,然后决定如何准确地修改它的内部状态。很明显,可能会同时运行多个 reduce 操作。在这种情况下,会出现几个问题:
identity
对象范围内是原子的吗?identity
对象不可变并在每次减少时返回一个新实例就足够了吗?我有一个带有只读副本的 Aurora PostgresSQL 集群。
我想了解(最好在 AWS 文档中)它是否在写入后为从 RO 副本读取提供强一致性,或者它是否“最终一致”意味着 RO 副本可以在持续复制期间返回过时的数据?
不幸的是,从文档中来看这一点并不是很清楚。我在这里
发现的是:
As a result, all Aurora Replicas return the same data for query results with minimal replica lag.
This lag is usually much less than 100 milliseconds after the primary instance has written an update.
Run Code Online (Sandbox Code Playgroud)
但是,我不确定如何解释这一点 - 它是否总是以更高的延迟为代价返回相同的数据,并增加复制延迟,或者它是否可以在复制期间返回陈旧的数据?
另外,我不确定它是否取决于底层数据库引擎(在我的例子中是 Postgres)。
在 Spring data JPA 中,有一个@Sql
注释对于设置持久层的集成测试非常方便。它可以在每次测试之前推出测试数据并在测试之后执行清理。
但是,我在模块中找不到它spring-data-r2dbc
。有没有类似的东西可以轻松处理这个任务spring-data-r2dbc
?
我正在使用 Google OAuth2 API 进行身份验证部分。
我使用的是“服务器”流程,而不是“隐式”流程。
在执行获取code
指南的步骤 1 时,建议使用该state
参数以确保最终服务提供商将收到与其发起的身份验证请求相关的响应。
请参阅https://developers.google.com/identity/protocols/OpenIDConnect#createxsrftoken
据我所知,有可能code
被盗,并redirect_uri
猜测。
但我不明白为什么这被称为反CSRF保护?
根据wiki CSRF 攻击“利用网站对用户浏览器的信任”。
据我所知,应该在浏览器中保留一些敏感的东西,以使 CSRF 攻击成为可能。最经典的例子 - 身份验证 cookie。
但是与 OpenID-connect 代码流相关的浏览器中保存了什么?
它只是从服务提供者到身份提供者并返回的两个结果重定向。
代码本身作为 URL 参数在回调中传递。
浏览器的角色是被动的——被重定向两次。这里没有存储任何东西。
所以我的问题是究竟什么样的 CSRF 攻击可以state
防止?谁能给个详细的例子?或者只是在谷歌指南中误用了术语“CSRF”?
Kibana ver >= 7.0 默认情况下为搜索下拉列表提供 KQL,但也支持似乎是旧的 Lucene 语法。在尝试搜索时,它经常恼人地抱怨“您可能正在使用 Lucene,但选择了 KQL”。转到建议的链接:
我看不出任何区别。它们之间的主要区别是什么?有人可以给出突出这些差异的查询示例吗?
在 Spring Framework 中,表示由 发布并由are
ApplicationEventPublisher
侦听的事件的类。@EventListener
EventObject <- ApplicationEvent <- PayloadApplicationEvent
我的问题是source
初始EventObject
构造函数和所有派生子类构造函数中的不可为空是什么?
Javadocs 给出了一个相当模糊的解释,即它是
“所讨论的事件最初发生的对象”。
它是关联的域实体或发布者服务还是其他什么?
此外,我很困惑,如果@EventListener
声明
“事件可以是 ApplicationEvent 实例以及任意对象”,为什么还需要它?
可以在订阅时使用一些数据来丰富 Reactor 的序列上下文,如下所示:
Mono.just("Hello")
.flatMap(s -> Mono.deferContextual(ctx -> Mono.just(s + " " + ctx.get(key))))
.contextWrite(ctx -> ctx.put(key, "World"));
Run Code Online (Sandbox Code Playgroud)
然而,这"World"
是在订阅时已知的静态数据。
我想解析初始 Mono 本身的值并将其放入上下文中,以便下游操作员可以通过上下文 API 访问它。
我怎样才能正确地做到这一点?
我正在研究的用例如下:
correlation_id
内部并将其放入 Reactors 上下文中,以使其对所有下游操作员可见。我想使用@FeignClient(url=...)
并使其直接转到给定的 url,而不是从功能区配置中获取主机。
我知道在 spring-cloud feign 中默认与ribbon和eureka一起出现。
根据这个:https : //cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-ribbon.html#spring-cloud-ribbon-without-eureka 可以禁用尤里卡并提供硬编码列表功能区的主机,例如:
${serviceId}:
ribbon:
listOfServers: ${host}
Run Code Online (Sandbox Code Playgroud)
根据这个:https : //cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-feign.html 可以为 feign 提供一个显式的 url,例如:
@FeignClient(name = "${feign.name}", url = "${feign.url}")
public interface StoreClient {
//..
}
Run Code Online (Sandbox Code Playgroud)
所以我对 FeignClient 到底会使用什么感到有些困惑:提供的 url 或来自功能区配置的主机?
我希望一些道具也可以禁用功能区以进行伪装,因为如果给 feign 一个单一的 url,那么负载平衡有什么意义?
Spring-cloud 发布火车 - Camden.SR2
我在 Spring Webflux 应用程序中使用spring-boot-starter-data-r2dbc
(版本 1.1.3)模块。
我想将实体生命周期回调添加到我的持久层。
使用 Spring Data JPA 可以使用@PrePersist
、@PreUpdate
等注释。
有没有方便的方法可以使用 Spring Data r2dbc 实现此目的?
java spring-data project-reactor spring-webflux spring-data-r2dbc
我有一个带有 Spring Boot 版本 2.3.5 的 Spring Webflux 应用程序
如何在运行时获取运行Netty容器的服务器端口?(不在测试中)
注意:如果配置中未指定端口,则@Value("${server.port}")
两者都@Value("${local.server.port}")
不起作用。
我想从 Mockito 模拟中获取每个给定方法的调用次数。
假设我声明了一个模拟和两个存根:
when(mock.methodA()).thenReturn(..);
when(mock.methodB()).thenReturn(..);
Run Code Online (Sandbox Code Playgroud)
我可以做类似的事情Mockito.mockingDetails(mock).getInvocations()
,但它返回所有调用的集合。我只想获得多次调用methodA
。
我有一个具有 data-r2dbc 依赖项的 Spring Boot 应用程序。我使用 PostgreSQL 作为数据库。
所以我已经有了以下依赖项(gradle 表示法):
org.springframework.boot:spring-boot-starter-data-r2dbc:2.3.5.RELEASE
io.r2dbc:r2dbc-postgresql
我需要为 R2DBC 连接启用连接池。不幸的是,我找不到任何详尽的手册来这样做。
根据这个相当过时的发行说明,我还必须添加io.r2dbc:r2dbc-pool
并使用spring.r2dbc.pool.*
属性来配置池。
此外,根据此参考,我不需要手动打开池,因为如果r2dbc-pool
在类路径中找到SB 将启用它。
够不够还是我错过了什么?
java ×8
spring-boot ×2
spring-data ×2
csrf ×1
database ×1
events ×1
feign ×1
google-oauth ×1
java-stream ×1
junit ×1
kibana ×1
mockito ×1
security ×1
spring ×1
spring-cloud ×1
unit-testing ×1