SpringBoot+Dubbo+Mybatis 項目升級版本(Gradle)

按最近公司的架構,本身搭建這樣個樣例。主要是將服務API層進行了區分,解耦接口與模型層.java

其中pojo層與vo層都是用來傳遞參數用法,API-facade層與service是兩個概念。API-facade層有統一的規範,能夠返回統一結果:git

Result {github

     int statecode;web

     int stateText;redis

     T data;數據庫

     public boolean isSuccess();bootstrap

     public boolean isBizFailure();api

    public boolean isFailure();緩存

}tomcat

建議把vo與model及pojo層分開,用不一樣名稱如 UserInfoVo,UserInfo,UserInfoPo

若是使用dubbo來構建。從分包層次來講。應該有:

  1. model
    1. 對應持久化對象。mybatis的對象或是hibernate對象
  2. dao 
    1. 對應數據庫訪問層。通常是mapper或是dao或是repository
  3. bus
    1. facade實現層
    2. service 層
    3. pojo層
  4. facade
    1. API service層 
    2. API vo層 (能夠當作model型層複製)
  5. controller
    1. 提供web服務
  6. common
    1. 定義通用的util
    2. 定義通用的api -result

通常來講能夠有這層次。還能夠多一層。將facade再包裝一層。叫整合api層。

如何使用:

  1. 建立數據庫test,建立用戶 。可修改application.properties
  2. 準備好zookeeper,默認地址:localhost:2181
  3. sample-app下有個deployer/dubbo-admin-2.5.4.war.在tomcat中部署
  4. 啓動提供者:sample-app中com/tdu/app/run/Application.java
  5. 啓動消費者:   sample-app2中fcom/run/Application.java
  6. 測試:http://localhost:9081/dubboapp2/test/call

如何下載:

https://github.com/tangdu/dubbo-api.git

如何初始化:

執行sample-master下的init_eclipse.sh 或是在項目下執行 gradle eclipse

-------關於-----------

關於面向SOA 我理解是:項目無狀態、提供API。權限等再包裝上層,所謂網關。

由這層能夠作權限 、驗證、加密、限流、統計。

對於完整項目來講,應該還要集成緩存 、job、UI、中間件、message

分享幾個框架:redis、ehcache、quartz或Elastic-job、zookeeper、RocketMQ、bootstrap、sui3

相關文章
相關標籤/搜索