小编anu*_*uni的帖子

Spring mvc和webflux在1个春季启动应用程序中

我从spring boot doc获得了以下指令:

在应用程序中添加spring-boot-starter-web和spring-boot-starter-webflux模块会导致Spring Boot自动配置Spring MVC,而不是WebFlux.选择此行为是因为许多Spring开发人员将spring-boot-starter-webflux添加到他们的Spring MVC应用程序中以使用反应式WebClient.您仍然可以通过将所选应用程序类型设置为SpringApplication.setWebApplicationType(WebApplicationType.REACTIVE)来强制执行您的选择.

我的问题是:

如果我的应用程序包含MVC服务和webflux服务怎么办?是否支持?

例如:

我可能有一些基于MVC的现有管理服务.现在我想添加一些webflux风格的新服务.

谢谢

莱昂

spring-boot spring-webflux

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

哪个scala集合最适合构建资源池

我想创建一个共享资源池,可以由多个线程同时访问.

每个线程都会执行以下操作:

  1. 从池中获取资源(如果没有可用资源,请执行其他操作)

  2. 使用获取的资源执行某些操作

  3. 将资源返回池中.

在java中,我可能会使用ConcurrentLinkedQueue.

scala中有更好的选择吗?

concurrency scala scala-collections

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

spray.can.Http $ ConnectionException:过早连接关闭

在我的下面测试中,我尝试模拟超时,然后发送正常请求.但是,我得到了spray.can.Http $ ConnectionException:过早连接关闭(服务器似乎不支持请求流水线)

class SprayCanTest extends ModuleTestKit("/SprayCanTest.conf") with FlatSpecLike with Matchers {

  import system.dispatcher

  var app = Actor.noSender

  protected override def beforeAll(): Unit = {
    super.beforeAll()
    app = system.actorOf(Props(new MockServer))
  }

  override protected def afterAll(): Unit = {
    system.stop(app)
    super.afterAll()
  }


  "response time out" should "work" in {
    val setup = Http.HostConnectorSetup("localhost", 9101, false)

    connect(setup).onComplete {
      case Success(conn) => {
        conn ! HttpRequest(HttpMethods.GET, "/timeout")
      }
    }

    expectMsgPF() {
      case Status.Failure(t) =>
        t shouldBe a[RequestTimeoutException]
    }


  }

  "normal http response" should …
Run Code Online (Sandbox Code Playgroud)

scala spray

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

手动排除 sbt 中的一些测试类

我通常在我的 CI 中执行以下命令:

干净更新编译测试发布

但是,我想从 sbt 命令行中排除 1 个(或几个)测试类。

我怎样才能做到这一点?(我不想更改我的代码以使用忽略等)

scala sbt scalatest

5
推荐指数
2
解决办法
4569
查看次数

如何在 webflux 中获取客户端 IP?

我曾经调用 HttpServletRequest.getRemoteAddr() 来获取客户端 ip。

我想知道如何通过 ServerWebExchange 获得它。

我最好的猜测是:

  serverWebExchange.getRequest().getRemoteAddress().getAddress().getHostAddress();
Run Code Online (Sandbox Code Playgroud)

这是正确的吗?

spring-webflux

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

WebFlux:如何使用提供的响应中止 WebFilter 中的请求处理

我想在我的 WebFilter 中做类似下面的事情来选择性地绕过后续的过滤器和 RestControllers:

if(shouldRedirect(exchange)){
  //do redirect
}else if(!canAccess(exchange)){
  //return a 403 response
}else{
  chain.filter(exchange);
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

谢谢

莱昂

spring-webflux

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

Spring sleuth 中的 WebClient 检测

我想知道侦探是否支持反应式 WebClient 检测。

我没有从文档中找到它:

检测 Spring 应用程序的常见入口和出口点(servlet 过滤器、异步端点、休息模板、计划操作、消息通道、Zuul 过滤器和 Feign 客户端)。

我的情况:

我可以在 WebFilter 或我的其余资源中使用 WebClient 来生成 Mono。

而且我要:

  • 自动创建为根跨度的子跨度的子跨度
  • 通过标头传播的跟踪信息

如果目前不支持检测,我是否应该从上下文中手动获取跨度并像这样自己完成:

反应式 WebClient 上的 OpenTracing 检测

谢谢

莱昂

spring-cloud-sleuth

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