我对Spring Reactive还是个新手。
我想将一个Spring反应式回购通量响应转换为另一种类型的单声道响应:
@Transactional(readOnly = true)
@Override
public Mono<BaseListResponseVm<AcsTransactionVm>> transactionsBy(
@NonNull Integer offset,
@NonNull Integer limit,
@NonNull String term,
AcsTransactionRequestDto dto
) {
var response = new BaseListResponseVm<AcsTransactionVm>();
var list = repository.findByPan(term, PageRequest.of(offset, limit));
return repository.findByPan(term, PageRequest.of(offset, limit))
XXXXX.(res -> {
response.setItems(); // List<AcsTransactionVm>
response.setCount(); // Long
});
}
public interface AcsTransactionRepository extends ReactiveCassandraRepository<AcsTransactionDao, Integer> {
@AllowFiltering
Flux<AcsTransactionDao> findByPan(String term, Pageable page);
}
我已经尝试了提供的运算符(转换是我需要的闭包,但它仍然将repo结果的每一个参数都提供为reactive参数),但最终不能得到任何我知道如何使用的东西。
看来是这样做的:
@Transactional(readOnly = true)
@Override
public Mono<BaseListResponseVm<AcsTransactionVm>> transactionsBy(
@NonNull Integer offset,
@NonNull Integer limit,
@NonNull String term,
AcsTransactionRequestDto dto
) {
log.debug("DB: fetching ACS transactions using offset {}, limit {}, term {} and request {}", offset, limit, term, dto);
var response = new BaseListResponseVm<AcsTransactionVm>();
return repository.findByPan(term, PageRequest.of(offset, limit))
.collectList().map(transactions -> {
var mappedItems = transactions.stream()
.map(mapper::toVm)
.collect(Collectors.toList());
response.setItems(mappedItems);
return response;
});
}
我有一个服务电话返回单声道。现在,在给用户提供API响应的同时,我想发送一些响应。我试过用flatMap和地图,但它不起作用。它给了我一个空的身体作为回应。 谢谢你
我在我的项目中使用了spring-boot-starter-webflux、ractor-test和spring-boot-starter-test 2.0.0.m7。在我的中有一个,您可以通过方法添加字符串值。还可以询问通过方法添加到列表中的所有值。问题是如何测试?我有,但它似乎不起作用,因为返回的总是0。我知道问题是中的方法,但我不知道原因和如何解决它。有人知道我应该如何创建一个有效的Juni
我有一个 其中func()返回Mono。将此对象列表转换为并从流返回的最简单方法是什么?
这是使用注释代码示例的Spring集成执行器通道的后续问题。 我试图通过在“公共频道”中发布一条消息并阅读味精中设置的REPLY_CHANNEL来测试用红色突出显示的框。 “公共通道”是发布-订阅通道。REPLY_通道是一个队列通道。 由于这是一个JUnit测试,我已经模拟了jdbcTemboard、数据源和Impl以忽略任何DB调用。 我的问题是:当我在“公共频道”上发布消息时,我在REPLY\
我正在使用Spring 5 webflux和ReactiveMongorPositories。假设我有两个系列“竞赛”和“竞赛参与”: 我需要找到一个特定用户参与的比赛页面。 我使用的解决方案是调用这将返回一个