Scala微服務架構 三

2022-07-04 08:36:10 字數 1903 閱讀 4065

之前我們已經把基層架構搭建好了,那麼要如何使用呢?

首先看看我的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類,每個類都有兩個引數idname,當然,他們建構函式的區別也很明顯.那麼這幾種不同的定義方式,有什麼區別呢?

應楊總要求,我們列印上面四個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 微服務架構介紹 微服務架構是 種架構模式...

微服務架構

一 先了解一下什麼是單體應用 就是乙個應用程式包含了所有模組功能,各模組同時部署。當然這種應用模式比較容易部署 測試,但隨著專案的加大,單體模式就會變得越來越臃腫,維護的成本逐漸變高。當乙個模組出錯,整個應用都會出現問題,擴充套件能力也會受到限制。二 什麼是微服務 是將整個應用程式分解為多個模組,各...