spring + Maven + Dubbo + MyBatis + Linner + Handlebars
- 開發環境搭建
本文主要分三部分,分別是:後臺核心業務邏輯,橋樑輔助控制和前臺顯示頁面。
本Web開發環境綜合了多種工具,包括Maven包管理與編譯工具,Dubbo分佈式服務框架,MyBatis數據持久化工工具,Linner頁面管理工具和Handlebars Js模板引擎等前衛的開發工具。
首先介紹一下:後臺核心業務邏輯搭建。
後臺核心業務邏輯搭建
後臺核心業務邏輯大致分爲三個層次:底層最的核心數據邏輯層(BIZ層),中間層達博服務實現層(服務IMPL層)和多寶服務接口層(服務的客戶端層)。此外還有公共的jar包管理父工程(parent工程),公共業務邏輯工程(common工程),任務調度工程(task工程)和總的maven管理工程。
示例如下圖:
接下來我會按照搭建順序簡單介紹一下相關工程的配置:
基本的順序是父工程→biz工程→通用工程→任務工程→服務客戶端工程→服務工程。
1.1基本jar包管理和服務環境配置父工程
父工結構如下圖所示:
父工程主要包括pom工程配置文件,過濾器文件下的三個開發環境配置文件和maven打包蝙蝠批處理命令文件。
首先介紹一下父工程的pom文件:
(1)不同的打包環境配置,使用不同的打包配置便利了項目整個開發,測試到生產流程的統一化管理。默認將開發環境激活,配置如下圖所示:
(2)編譯時設置不對指定的資源文件進行替換。包括Freemarker模板文件ftl,靜態-dynamic.xml文件,mybatis動態SQL Mapper文件。如下圖:
(3)工程編碼和打包插件配置:包括工程編碼插件Java版本1.7 ,生成javadoc 插件,打包Java 源碼插件,導入eclipse 工程插件等的配置如下圖所示:
(4)單元測試覆蓋率統計插件配置:
忽略對以下路徑文件的單元測試覆蓋率統計:action,webapp,interceptor,taglib,domain,model,dto和util / DataFormat.class下圖相應配置信息:
1.2 biz核心業務邏輯工程
按模塊劃分的動態SQLMapper文件:示例:SamStateInfoMapper.xml,如圖1-21
序號①指定mybatis基本配置文件sqlMapConfig.xml的路徑。
序號②指定動態SQL Mapper文件的路徑。
序號③爲基礎的baseDAO Bean的聲明。
一個包類文件,主資源文件;測試Java包類文件,測試資源文件四大部分組成。主Java包類文件的文件路徑爲com.ouc.mkhl.supplier,下按模塊劃分,示例中爲jmx,security和util 3個模塊.security模塊又細分爲advice包,dao 數據訪問對象包,域包,模型數據實體類包和服務服務接口包,服務接口包下包含impl服務接口實現包。
主資源文件包含郵件郵箱模板文件,日誌配置文件,mybatis配置文件,spring相關配置文件。之後將對各配置文件做逐一介紹。
測試Java包類文件包含與主Java包相關的各單元測試文件。
測試資源文件包含springcache文件和mybatis數據持久層發電機配置文件。
1)biz工程的pom配置文件:如下圖所示:
序號①爲工程的父maven工程配置。
序號②爲工程的繼承和引用工程關係配置。
2)biz工程主資源配置文件說明:
(1)mybatis配置文件:首先介紹基本的SQLMap配置文:sqlMapConfig.xml
按模塊劃分動態SQLMapper文件:示例:SamStateInfoMapper.xml,如下圖
(2)彈簧相關配置文件:
①緩存緩存配置文件:ehcache.xml,spring-cache-security.xml,spring-cache.xml。
②jmx運行期系統管理配置文件:spring-jmx-mbean.xml。
③按模塊劃分的自定義Bean聲明配置文件:示例:spring-upload.xml
序號①爲類似DAO的數據庫接口操作類Bean。
序號②爲服務接口Bean方法。
b爲聲明的切面,a爲前置通知和後置通知要執行的方法。
④公用操作的配置文件spring-common.xml。
序號①指定mybatis基本配置文件sqlMapConfig.xml的路徑。
序號②指定動態SQL Mapper文件的路徑。
序號③爲基礎的baseDAO Bean的聲明。
⑤spring配置工具配置:spring-config-toolkit.xml
⑥數據源配置:spring-datasource.xml
⑦Dubbo服務接口發佈配置:spring-dubbo.xml
⑧服務擴展接口配置:spring-external.xml
⑨業務日誌配置:spring-log.xml
⑩Quartz監控配置:spring-monitor.xml
傳輸事物管理配置:spring-transaction.xml
biz工程代碼示例:
用戶暴露系統相關管理接口,以實現運行期調用:ExposeMethodInterface
運行期管理系統接口實現:配置
b。系統初始化:SystemBootstrap
c.DAO:SupplyUserDAO:
d。型號:SupplyUser
1.3 service-client服務接口工程
service-client工程結構如圖:
分爲傳輸DTO包,輔助功能助手包,客戶端服務接口聲明服務包和客戶端工具類util包。
service-client示例代碼:
一個。DTO:SupplyUserDTO
b。客戶端服務接口服務:SupplyUserServiceClient
1.4 service-impl服務接口具體實現功能工程
服務工程結構如圖:
該工程包括異常處理過濾包和客戶端服務接口具體實現impl包。主資源文件有客戶端Dubbo接口發佈基本配置文件spring-dubbo.xml和用戶自定義服務配置文件spring-user-provider.xml。圖所示:
序號①爲代理平臺分配的應用S碼。
序號②爲後臺接口代理服務。
序號③爲服務方法認證相關服務接口。
序號④爲服務自動註冊接口。
服務代碼
1.5任務調度工程
配置文件示例spring-lts-job.xml:如圖1-35所示。
序號①爲設置作業執行週期。
橋樑輔助控制
包括控制控制器,輔助類域,excel處理,環境配置過濾器過濾器,操作攔截器攔截器,輔助工具utils等。
資源文件有:spring接口和代理服務配置文件root-context.xml,網頁servlet攔截器配置文件servlet-context.xml,Redis配置文件redis-persistence-context.xml。項目環境配置文件過濾器,網頁web.xml配置文件。
1)項目環境配置文件過濾器:dev.properties,如下圖所示。
序號①爲項目環境類別說明。
序號②爲日誌配置。
序號③爲項目驗證網址地址。
序號④爲redis相關配置。
序號⑤爲dubbo相關配置。
序號⑥爲項目中央倉庫地址配置。
序號⑦爲集羣平臺兵馬俑配置。
★序號⑧爲與頁面工程相關的配置:
應用簡稱(app.name),服務器名稱(server.name),與頁面工程有關的服務Key(server.key),dubbo應用名(dubbo.application.name),頁面工程路徑(publicPathPrefix),瀏覽器訪問域名(domain.name)和默認跳轉頁面(login.after.jump.url)。
序號⑨爲項目集團內網和外網環境安全配置。
2)Web.xml配置文件:
主要內容有配置系統啓動監聽器startupListeners,基於緩存實現的集羣會話配置和編碼過濾等內容。
前臺頁面工程
1)頁面工程結構如下。
典型的被管理的項目前端工程結構如下:
├─a : app ## app 是開發者自開發代碼的存儲目錄。
│├─ A1:部件 ## 存放項目的組件文件。
││└─dropdown ## 示例組件(此處假設爲下拉)。
││└─ 模板## 組件自身的前端模板。
││├─view.coffee | view.js ## 組件js,可以使咖啡也可以是js。
││├─view.hbs ## 組件模板
││└─view.scss | view.css ## 組件樣式文件,可以是scss,也可以是css。
│├─ A3:圖片 ## 存放項目相關的圖片文件。
││└──logo.png
│├─ A5:腳本 ## 存放項目相關的的JavaScript文件。
展示│展示│└──app.coffee
展示│├─ A6:風格 ## 存放項目相關的樣式表文件。
││└──app.scss
│├─ A7:模板 ## 存放項目相關的前端模板文件。
││└──welcome.hbs
│├─ A8:意見 ## 用於存放項目相關的頁面文件。
││└──index.html
│└─ A2:文件 ## 用於存放相關配置文件,例如front_config.yaml等。
├─bin ## 用戶可以基於本啓動本地服務器(以當前文件夾爲根),當然更好的選擇是適用的。
│└──服務器。
├─config.yml ## 是整個項目的配置文件。
├─b :public ## 是項目執行linner build後生成的打包文件位置,是發佈項目所需的所有文件。
├──測試 ## 測試前端項目的單元測試文件所在目錄。
└─c : vendor ## 存放引入的第三方代碼組件,例如jQuery,Underscore等.
2)頁面調用後臺服務
3)整個項目的配置文件config.yml。
4)後端服務back_config.yaml配置:
5)前端頁面引用服務front_config.yaml配置:
6)頁面hbs示例:
組件類型調用服務示例
ajax類型服務調用方式
友情鏈接:
手把官網:http : //handlebarsjs.com/
Node.js官網:https://nodejs.org/en/
CoffeeScript中文網:http : //coffee-script.org/#top
Redis中文官網:http : //www.redis.cn/