Clojure - 应用程序
Clojure 有一些贡献的库,可以创建桌面和基于 Web 的应用程序。 让我们逐一讨论一下。
序号 | 应用与描述 |
---|---|
1 | Desktop – See-saw
See-saw 是一个可用于创建桌面应用程序的库。 |
2 | Desktop - 更改文本值
可以使用'config!'选项更改窗口中内容的值。 在下面的示例中,配置! 选项用于将窗口内容更改为"Good Bye"的新值。 |
3 | Desktop - 显示模态对话框
使用see-saw类的alert方法可以显示模式对话框。 该方法获取文本值,该文本值需要显示在模式对话框中。 |
4 | Desktop - 显示按钮
按钮可以在按钮类的帮助下显示。 |
5 | Desktop – 显示标签
可以借助标签类来显示标签。 |
6 | Desktop - 显示文本字段
文本字段可以在文本类的帮助下显示。 |
Web 应用程序 - 简介
要在 Clojure 中创建 Web 应用程序,您需要使用 Ring 应用程序库,可通过以下链接 https://github.com/ring-clojure/ring 获取该库
您需要确保从网站下载必要的 jar,并确保将其添加为 Clojure 应用程序的依赖项。
Ring 框架提供以下功能 −
进行设置,使 http 请求作为常规 Clojure HashMap 进入您的 Web 应用程序,同样使您可以作为 HashMap 返回响应。
提供准确描述这些请求和响应映射应是什么样子的规范。
携带 Web 服务器 (Jetty) 并将您的 Web 应用程序连接到它。
Ring 框架可以自动启动 Web 服务器并确保 Clojure 应用程序在此服务器上运行。 然后还可以使用 Compojure 框架。 这允许人们创建路由,这就是现在大多数现代 Web 应用程序的开发方式。
创建您的第一个 Clojure 应用程序 − 以下示例展示了如何在 Clojure 中创建第一个 Web 应用程序。
(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" 用于创建路由,以便向 Web 应用程序发出的不同路由请求可以定向到 Clojure 应用程序中的不同功能。
在上面的示例中,"/"被称为默认路由,因此当您浏览到 Web 应用程序的基础时,字符串"Hello World"将被发送到 Web 浏览器。
如果用户点击 Clojure 应用程序无法处理的任何 URL,则会显示字符串"Not Found"。
当您运行 Clojure 应用程序时,默认情况下您的应用程序将作为 localhost:3000 加载,因此如果您浏览到此位置,您将收到以下输出。
Web 应用程序 - 向您的 Web 应用程序添加更多路由
您还可以向 Web 应用程序添加更多路由。 以下示例展示了如何实现这一目标。
(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))
您可以看到,在应用程序中添加路由就像使用 url 路由添加另一个 GET 函数一样简单。 (GET "/Tutorial" [] "这是关于 Clojure 的教程")
如果您浏览到位置 http://localhost:3000/Tutorial,您将收到以下输出。