原创 Scala下Play框架學習筆記(Body parsers)

什麼是Body Parsers      一個HTTP請求是一個頭部後面緊隨着一個body,頭部很小,可以在內存中緩存,因此Play的模型中使用了RequestHeader這個類。Body有時候也可能很長,以致於不能緩存,反而作爲一種流而被

原创 Scala下Play框架學習筆記(Http Routing)

內置的HTTP路由路由把每一個引進來的HTTP請求對應到相應的Action去。HTTP請求被認爲是MVC框架下的一個事件,這一事件包含兩部分主要信息:(1)請求路徑,包括query String(2)HTTP方法,如get,post等   

原创 postman進行接口測試

      今天同事教我用postman進行接口測試,一般get請求可以直接在地址欄測試,post是json串,所以要使用工具。      界面如上,一般點擊post請求,輸入請求地址,然後點擊body,輸入JSON串,注意是case cl

原创 Scala的sealed關鍵字

    今天在看同事的代碼時看到如下代碼:package object msg {  sealed trait TaskType {    def toString: String  }  trait DataCloudMSG extend

原创 sbt在build中配置依賴jar包的問題

  由於項目中發郵件的需要,我需要引入javax.mail這個jar包,於是學習了一下,具體build.sbt的用法在如下鏈接裏講到:    http://beike.iteye.com/blog/1575296   看看裏面的3——5 

原创 Scala下Play框架學習筆記(Actions,Controllers and Results)

Scala下Play框架的學習是一件辛苦的事情,因爲該框架比較新,scala語言也較新,所以中文資料很少,經過同事推薦,去了如下英文網站看資料:https://www.playframework.com/documentation/2.5.

原创 Scala的Akka編程中代碼保持線程安全的重要性

今天我提交我的遠程分支合併到git orgin/master的請求,亮哥給了我一些指導。亮哥 started a discussion on the diffweb/datacloud-web/app/com/mininglamp/data

原创 akka系統中停止運行任務的問題

   上週的工作中遇到了一個停止運行任務時的問題,就是在一個任務運行到一半時需要停止的問題。正常的需求是一按停止按鈕,就要立即停止,但現在都要等程序運行完才能停止,現在是一個bug。由於之前寫任務運行邏輯的不是我,因此我先花一個小時苦讀大神

原创 scala系統導出大文件問題解決方案

     這周遇到了一個技術難題,我們系統中的導出文件功能雖然早已完成,但是當導出超過8MB的文件時就會提示GC overhead,一開始只把問題定位到緩衝區不夠,所以試圖找到一條分批查詢的方案,經過一定時間的調研就找到了一個看似挺好的方案

原创 完成郵箱密碼重置功能中遇到的問題

     1.寫完接口後用postman測試接口功能時發現所有Post請求都變成了非法登錄,以前不登錄都能直接請求的,想到是不是代碼和git上有區別,仔細比對後發現沒有影響,最後發現要先調用login接口進行一次登錄,可能之前是同事已經幫我

原创 Scala下Play框架學習筆記(Manipulating Results)

更改默認的content type      根據響應體中指定的scala值,可以自動地推斷出結果的content type,舉例如下:     val textResult = Ok("Hello World!")這將自動地把conten

原创 Scala數據庫開發時的陷阱

      今天在Scala數據庫開發時遇到一個新建用戶接口一直插入不了數據的情況,後來發現是我還沒數據scala的play-slick框架導致的,其實類似於DataCloudUsers += u.newUser只是把一條記錄添加到數據庫查

原创 Scala下Play框架學習筆記(Session and Flash scopes)

session和flash scope 的區別      如果需要通過多個HTTP請求傳輸數據,那麼就要用到session和flash scope。在session中存儲的,整個會話過程都有效,在flash scope 中存儲的,只是

原创 Scala正則表達式問題

      今天同事幫我調試了密碼修改模塊的正則表達式問題,最後我發現成功調通的正則表達式如下: // 密碼的正則表達式,由大寫字母,小寫字母,數字,下劃線四類字符組成,且至少要包含其中兩類.private final val REGEXP

原创 Scala flatMap的變體

      今天看到了flatMap的變體flatMapMflatMapM {  _.map(getUserWithKey).getOrElse(Future.failed(UnavailableUserKey))……點進去後看發現:/**