Clojure 應(yīng)用程序

2018-12-29 17:58 更新

Clojure有一些有用的庫,它們能夠創(chuàng)建桌面和基于Web的應(yīng)用程序。 讓我們來討論它們中的每一個。

S.No.方法和說明
Desktop – See-sawSee-saw是一個可用于創(chuàng)建桌面應(yīng)用程序的庫。
Desktop – Changing the Value of Text可以使用“config!”選項更改窗口中內(nèi)容的值。 在下面的示例中配置! 選項用于將窗口內(nèi)容更改為新值“Good Bye”。
Desktop – Displaying a Modal Dialog Box可以使用蹺蹺板類的警報方法顯示模態(tài)對話框。該方法采用文本值,需要在模態(tài)對話框中顯示。
Desktop – Displaying Buttons按鈕可以在按鈕類的幫助下顯示。
Desktop – Displaying Labels可以在標簽類的幫助下顯示標簽。
Desktop – Displaying Text Fields文本字段可以在文本類的幫助下顯示。

Web應(yīng)用程序 - 簡介

要在Clojure中創(chuàng)建Web應(yīng)用程序,您需要使用Ring應(yīng)用程序庫,該應(yīng)用程序庫在以下鏈接中提供 https://github.com/ring-clojure/ring

您需要確保從網(wǎng)站下載必要的jar,并確保將其添加為Clojure應(yīng)用程序的依賴關(guān)系。

Ring框架提供以下功能:

  • 設(shè)置事情,使得http請求作為常規(guī)的Clojure HashMap進入您的Web應(yīng)用程序,同樣使得您可以返回作為HashMap的響應(yīng)。

  • 提供一個規(guī)范,描述那些請求和響應(yīng)映射應(yīng)該是什么樣子。

  • 沿著Web服務(wù)器(Jetty)啟動,并將您的Web應(yīng)用程序連接到它。

Ring框架可以自動啟動Web服務(wù)器,并確保Clojure應(yīng)用程序在此服務(wù)器上工作。 然后還可以使用Compojure框架。 這允許創(chuàng)建路線,現(xiàn)在是大多數(shù)現(xiàn)代web應(yīng)用程序的開發(fā)。

創(chuàng)建您的第一個Clojure應(yīng)用程序 -以下示例顯示如何在Clojure中創(chuàng)建第一個Web應(yīng)用程序。

(ns my-webapp.handler
   (:require [compojure.core :refer :all]
      [compojure.route :as route]
      [ring.middleware.defaults :refer [wrap-defaults site-defaults]]))
(defroutes app-routes
   (GET "/" [] "Hello World")
   (route/not-found "Not Found"))
(def app
   (wrap-defaults app-routes site-defaults))

讓我們來看看程序的以下方面

  • 'defroutes'用于創(chuàng)建路由,以便對Web應(yīng)用程序?qū)Σ煌酚傻恼埱罂梢灾赶蚰腃lojure應(yīng)用程序中的不同函數(shù)。

  • 在上面的示例中,“/”被稱為默認路由,因此當(dāng)您瀏覽到Web應(yīng)用程序的基礎(chǔ)時,字符串“Hello World”將被發(fā)送到Web瀏覽器。

  • 如果用戶命中任何無法由Clojure應(yīng)用程序處理的URL,那么它將顯示字符串“未找到”。

當(dāng)運行Clojure應(yīng)用程序時,默認情況下,應(yīng)用程序?qū)⒆鳛閘ocalhost:3000加載,因此如果瀏覽到此位置,您將收到以下輸出。

Clojure的應(yīng)用

Web應(yīng)用程序 - 為您的Web應(yīng)用程序添加更多路由

您還可以向您的Web應(yīng)用程序添加更多路由。 以下示例顯示如何實現(xiàn)此。

(ns my-webapp.handler
   (:require [compojure.core :refer :all]
      [compojure.route :as route]
      [ring.middleware.defaults :refer [wrap-defaults site-defaults]]))
(defroutes app-routes
   (GET "/" [] "Hello World")
   (GET "/Tutorial" [] "This is a tutorial on Clojure")
   (route/not-found "Not Found"))
(def app
   (wrap-defaults app-routes site-defaults))

你可以看到,在應(yīng)用程序中添加一個路由就像添加另一個GET函數(shù)一樣簡單。 (GET“/ Tutorial”[]“這是一個關(guān)于Clojure的教程”)

如果瀏覽到位置http:// localhost:3000 / Tutorial,您將收到以下輸出。

本地主機

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號