2014-11-04 122 views
0

我最近一直在編寫Scala應用程序,對於那些需要Web UI的人來說,Play框架非常棒,但我正努力爲沒有UI的後端應用程序定義一個合理的庫棧。 Play爲這些無用戶界面應用程序提供了兩個非常有用的組件:良好的JSON支持和通過'sbt舞臺'方便的應用程序打包。但它也帶來了很多未使用的行李,我寧願修剪這些後端應用程序。我知道Scala標準庫中的JSON支持已基本消失,並且存在像Jackson/Jerkson或Argonaut這樣的選項,但我希望跨應用程序使用統一的方法,而不是爲了相同的目的而處理多個庫。另外我知道sbt還有其他包裝插件,但這也帶來了同樣的問題。Scala在沒有Web UI的情況下播放應用程序?

對於沒有Web UI的應用使用Play有意義嗎?人們真的在那裏做這件事嗎?如果是這樣,我怎麼配置Play以這種方式工作? (例如,不啓動HTTP偵聽器:9000)。

非常感謝提前。

+0

寫更多你需要什麼。你需要中間件應用程序嗎?這個應用程序將如何與他人溝通? – 2014-11-04 16:04:25

+1

對於僅限JSON的端點,我將使用噴霧 – 2014-11-04 16:08:11

+1

您可以在Play之外使用「play-json」庫。 – 2014-11-04 16:10:05

回答

4

當然,Play和REST應用程序一樣很好,就像Spray一樣(很快會成爲Akka HTTP)。噴霧將使用更少的資源,但Play也不是特別大。

歸結爲偏好。如果您更喜歡以Play風格編寫程序(聲明式,快速開發循環),並使用Spray(Akka HTTP),則可以使用Play,如果您希望獲得更多控制權並希望將代碼基於演員(消息傳遞,監督)。

Play和Spray都有自己的JSON庫,可以單獨使用,但不幸的是這些庫不能彼此互換。

我不明白你關於包裝插件的問題,但Play使用sbt-native-packager

要在Play中配置HTTP端口,請使用-Dhttp.port=1234。所有的細節見 https://www.playframework.com/documentation/2.3.x/ProductionConfiguration

+0

選擇生產力主宰你的決策的遊戲,以及需要性能和靈活性的Spray/akka-http。 – 2014-11-13 00:05:47

相關問題