java spring web 開發統一服務入口
項目組使用的springmvc框架 前後端交互每個模塊新建一個Controller,寫N個RequestMapping,項目大了感覺很亂, 一些日誌,權限驗證,審計功能等都要通過攔截器實現,而且入參出差不規範,後面開發了一個統一的服務入口,就是系統所有請求都經過一個Controller,通過該Controller轉發到對應的service類進行業務處理,項目組只需要定義Service類,實現我定義的接口,前端按照框架定義的參數格式傳遞即可訪問到自己service類進行業務處理。
項目結構圖 SSH框架
1.首選web.xml配置Controller請求路徑
2. RequestController.java
json.request作爲框架服務唯一入口,
前端ajax請求json參數固定格式
{"beanName":"loginService","actionName":"checkLogin","body":{}}
首先把request.getInputStream()參數封裝成Map集合,方便使用
3.ServiceDispatcher.java
獲取beanName轉發到對應的service類
驗證通過可開啓session,然後關閉,在對應的service類可直接使用session操作數據庫
要求項目組定義的service需實現BaseService接口
4.新建測試service
使用switch(actionName)執行不同的業務方法,嫌麻煩可以直接使用反射機制,執行actionName方法
使用postman測試請求
查看tomcat輸出,已請求到LoginService的execute方法