在第一天提到了要反璞歸真,所以今天開就從web server的lib開始慢慢的往上堆疊啦
本來的想要嘗試的是使用nginx-clojure,但無奈這兩天沒有搞起來
但無損繼續完成鐵人賽的目標!!
就來用ring,我們公司的專案是使用http-kit,所以對我來說也算新的嘗試~
我們直接在user這個檔案裡加上我們需要的伺服器 [ring.adapter.jetty :as jetty]
這先用簡單的handler,明天再來加routing。
基本的啟動伺服器要注意一下 join?
設定成false,不然會block我們的repl
然後我這邊多加了一個wrap-reload
的middleware,等等就能展現能力了
在 start-server
我們看到 [dev? port],分別對應要傳入兩個參數
所以就在repl直接輸入 (start-server true 7777)
就可以開dev mode跟port在7777上
要停止就只需要(stop-server)
另外就是展現一下reload
我們可以看到一開始的 localhost:7777
是會顯示 Hello World 9898
但你隨便修改BODY,然後evaluate(我是習慣使用Evaluate top level form,在mac是option+enter)
再回瀏覽器refresh,東西就改變了
他沒有重啟整個jvm(而且重啟會很慢),單純就是發src的目錄下有變,就去更新那個app,其他都不會被影響