spark-java - 在 Spark 框架上使用 ThreadLocal 创建请求上下文是否可取

标签 spark-java

使用 Spark web framework - 我想避免将所有参数传递给每个方法签名(请求用户等)。使用具有静态 ThreadLocal 属性的上下文是否合适?

我想我们无法完全控制哪个线程为请求服务,但我猜每次调用 Spark API/边界时进行初始化应该没问题。

最佳答案

我摆弄了一下,我想我找到了解决这个问题的好方法。根据文档:

/**
 * Sets an attribute on the request
 * (can be fetched in filters/routes later in the chain)
 *
 * @param attribute The attribute
 * @param value     The attribute value
 */
public void attribute(String attribute, Object value) {
    /* ... */
}

因此您可以在请求本身中设置一个属性,然后再获取它。非常整洁。

关于spark-java - 在 Spark 框架上使用 ThreadLocal 创建请求上下文是否可取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45765830/

相关文章:

java - SparkJava 编译为 native 镜像不起作用

java - 在spark java中下载图片

json - 无法使用Kotlin将正文发布到Spark REST API

java - 将 Spark-Java(Gradle、Maven)应用程序部署到 AWS Elastic Beanstalk

jetty - 带有 Jetty 嵌入式服务器的 Spark 应用程序不记录冒泡异常

java - 为什么 Sparkjava 不适合生产?

Java 星火框架 : Use Straight HTML Template

java - 如何在 Spark Java 中部署

tomcat - 严重 : Error filterStart error on Openshift Tomcat 7