【发布时间】:2019-05-18 18:50:56
【问题描述】:
我是 spring 5 的新手。
1) 如何在不阻塞的情况下记录 Mono 和 Flux 类型的方法参数?
2) 如何使用 Map-struct 将 API 层的模型映射到服务层的业务对象?
编辑 1: 我有这个命令式代码,我正在尝试将其转换为反应式代码。由于在参数中引入了 Mono,目前存在编译问题。
public Mono<UserContactsBO> getUserContacts(Mono<LoginBO> loginBOMono)
{
LOGGER.info("Get contact info for login: {}, and client: {}", loginId, clientId);
if (StringUtils.isAllEmpty(loginId, clientId)) {
LOGGER.error(ErrorCodes.LOGIN_ID_CLIENT_ID_NULL.getDescription());
throw new ServiceValidationException(
ErrorCodes.LOGIN_ID_CLIENT_ID_NULL.getErrorCode(),
ErrorCodes.LOGIN_ID_CLIENT_ID_NULL.getDescription());
}
if (!loginId.equals(clientId)) {
if (authorizationFeignClient.validateManagerClientAccess(new LoginDTO(loginId, clientId))) {
loginId = clientId;
} else {
LOGGER.error(ErrorCodes.LOGIN_ID_VALIDATION_ERROR.getDescription());
throw new AuthorizationException(
ErrorCodes.LOGIN_ID_VALIDATION_ERROR.getErrorCode(),
ErrorCodes.LOGIN_ID_VALIDATION_ERROR.getDescription());
}
}
UserContactDetailEntity userContactDetail = userContactRepository.findByLoginId(loginId);
LOGGER.debug("contact info returned from DB{}", userContactDetail);
//mapstruct to map entity to BO
return contactMapper.userEntityToUserContactBo(userContactDetail);
}
【问题讨论】:
-
您能否详细说明一下代码示例的问题?请参阅stackoverflow.com/help/mcve 以获得一些帮助。
-
添加了代码。
标签: spring logging reactive-programming spring-webflux project-reactor