Spray 是一个非常好的框架,背后有一些非常聪明的人。它为您提供了简单的代码,在功能和并发用户方面都可以很好地扩展。如果你想最终得到一个可读性好的应用程序(良好的结构,很容易找到哪个 url 映射到哪个功能等),Spray 很棒。
不过,并非一切都很好。
与 Akka 的紧密耦合是一把双面剑。对于简单的应用程序,它增加了不必要的复杂性。如果您想在使用 Spray 之前拥抱 Akka,请仔细考虑。
目前,Spray (1.1M4) 的指令文档非常有限,因此您主要靠自己,阅读高级 Scala 代码,摸不着头脑。
到目前为止,向后兼容性还没有被认真对待。升级时希望触及所有代码。这既要归咎于 Akka 和 Scala 本身,也应归咎于 Spray。如果你不喜欢这个,可以选择一些枯燥可靠的东西,比如 Spring MVC。
使用的 Scala 语言结构很难正确解析,以至于大多数 IDE 都会丢失,您必须等待实际的编译器完成它的工作,然后才能知道您要面对什么。我之前说过代码很容易阅读,但这只是高级别的。您很容易了解正在发生的事情,但要真正了解正在发生的事情,您的头脑中需要大量的堆栈空间。
我在生产中使用 Spray 并坚持使用它(可能),但这并不是一件容易的事。期待在同等措施中感到沮丧和高兴。