首页 > 解决方案 > Spring Webflux - 如何以反应友好的方式转换波纹管代码?

问题描述

fun getProjectOverview(fiscalYear: Int): ProjectOverview? {
        val projectList: List<Project> = projectRepo.findAllProjects(fiscalYear)
        return if (projectList.isNotEmpty()) {
            val totalProjects = projectList.size
            val completedProjects = projectList.count { it.status == "COMPLETED" } //Add enums
            val meanScheduledVariance = (projectList.sumBy { it.schedule_variance } / totalProjects)
            val meanCostVariance = (projectList.sumBy { it.cost_variance } / totalProjects)

            ProjectOverview(totalProjects, completedProjects, meanScheduledVariance, meanCostVariance)
        } else {
            null
        }
    }

这是我的服务的业务逻辑,下面给出了我目前在控制器中所做的事情。

Mono.justOrEmpty(projectService.getProjectOverview(fiscalYear)).toFuture()

我想做的是将我的服务功能更改为反应友好的方式。由于我对响应式编程有点陌生,我不知道如何处理 Mono 中的业务逻辑。

标签: kotlinreactive-programmingspring-webflux

解决方案


推荐阅读