使用 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/