Clojure 應(yīng)用程序

2018-12-29 17:58 更新

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

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

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

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

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

Ring框架提供以下功能:

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

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

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

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

創(chuàng)建您的第一個(gè)Clojure應(yīng)用程序 -以下示例顯示如何在Clojure中創(chuàng)建第一個(gè)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))

讓我們來(lái)看看程序的以下方面

  • 'defroutes'用于創(chuàng)建路由,以便對(duì)Web應(yīng)用程序?qū)Σ煌酚傻恼?qǐng)求可以指向您的Clojure應(yīng)用程序中的不同函數(shù)。

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

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

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

Clojure的應(yīng)用

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

您還可以向您的Web應(yīng)用程序添加更多路由。 以下示例顯示如何實(shí)現(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)用程序中添加一個(gè)路由就像添加另一個(gè)GET函數(shù)一樣簡(jiǎn)單。 (GET“/ Tutorial”[]“這是一個(gè)關(guān)于Clojure的教程”)

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

本地主機(jī)

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)