之前我們已經把基層架構搭建好了,那麼要如何使用呢?
首先看看我的controller層**
@singleton
class bmauthcontroller @inject()(implicit cc: controllercomponents, actorsystem: actorsystem)
extends abstractcontroller(cc) with circe with circejsonapisupport
}
@inject()(implicit cc: controllercomponents, actorsystem: actorsystem)
首先這個@inject會查詢play的system環境,並將查到的單例例項注入到引數中.
官網解釋
也就是說,這就是basecontroller的抽象子類,但是要帶有乙個controllercomponents作為建構函式.circe是乙個scala的json解析庫.並且目前已經支援play.
play的使用方式很簡單,首先引入專案:
librarydependencies += "com.dripower" %% "play-circe" % "2609.1"
然後繼承play.api.libs.circe.circe特質
使用起來也很簡單,上面**的
circe.json[rootobject]
部分就是在使用circe解析jsonapi的root部分.
對jsonapi協議的支援,裡面主要就是兩個隱式,**如下:
trait circejsonapisupport extends circejsonapiencoders with circejsonapidecoders
object circejsonapisupport extends circejsonapisupport
對不起,各位,暫時沒寫!!! ,有興趣的可以私信我,後期我會補上.
學自今天要說的當然不是大家熟知的建構函式,而是以前我們可能忽略的細節.
class user1(var id: string, var name: string)
class user2(val id: string, val name: string)
class user3(private var id: string,private var name: string)
class user4(id: string, name: string)
上面**定義了四個user類,每個類都有兩個引數id
和name
,當然,他們建構函式的區別也很明顯.那麼這幾種不同的定義方式,有什麼區別呢?
應楊總要求,我們列印上面四個user類的編譯資訊
def tree1 = reify .tree
def tree2 = reify .tree
def tree3 = reify .tree
def tree4 = reify .tree
然後分別列印上面的四個樹,輸出結果如下:
tree1:
};()
}
tree2:
};()
}
tree3:
};()
}
tree4:
};()
}
微服務架構核心(三) 微服務技術架構體系
微服務架構的名字裡雖然有個 微 但它涉及的整體架構體系可一點也不 微 微服務架構除了業務 的開發以外,還需要很多的支撐服務。每個公司都有自己的微服務架構體系,雖然在細節上有很多不同,但是整體的思路是類似的,下圖展示了乙個比較成熟的微服務架構體系。這個體系按照請求接入,由外到內的順序,將整體架構分為接...
微服務與微服務架構
微服務 微服務強調的是服務的大小,它關注的是某乙個點,是具體解決某乙個問題 提供落地對應服務的乙個服務應用,狹意的看,可以看作eclipse裡面的乙個個微服務工程 或者module。例如 訂單服務 支付服務 微服務架構 馬丁.福勒 martin fowler 微服務架構介紹 微服務架構是 種架構模式...
微服務架構
一 先了解一下什麼是單體應用 就是乙個應用程式包含了所有模組功能,各模組同時部署。當然這種應用模式比較容易部署 測試,但隨著專案的加大,單體模式就會變得越來越臃腫,維護的成本逐漸變高。當乙個模組出錯,整個應用都會出現問題,擴充套件能力也會受到限制。二 什麼是微服務 是將整個應用程式分解為多個模組,各...