權限管理開發-準備html
功能 : MyBatis官方提供了逆向工程 mybatis-generator,能夠針對數據庫表自動生成MyBatis執行所須要的代碼(如Mapper.java、Mapper.xml、POJO)。mybatis-generator 有三種用法:命令行、eclipse插件、maven插件。java
一、添加generate插件到permission工程中 mysql
根據插件包路徑對配置文件 generator.xml 配置文件進行相應修改:web
第一點:spring
修改成mysql-connector-java.5.1.34.jar所在的路徑sql
第二點:數據庫
修改數據庫鏈接配置apache
第三點到第五點:json
配置生成的類的包及保存路徑api
第六點:
配置要生成的表及對應的表的實體類名稱。
二、執行生成命令:
執行結果:
後臺收到前臺的請求時,通常有兩種請求,一種是數據請求,一種頁面請求;返回請求結果時,除了返回請求的結果時,還須要返回相關的狀態,用於返回異常以及異常描述。
建立JsonData用於封裝數據
ret爲true表明請求結果爲所須要的數據內容,爲false時表明請求被拒絕或權限不足、異常等,配合msg進行描述。
添加相關依賴:
建立異常攔截類:
這裏使用@Slf4j進行日誌的輸出。
建立自定義異常類 PermissionException:
JsonData.java 補充:
建立exception.jsp 異常描述頁面:
完整的異常攔截:
爲何 ModelAndView的構造器加入 ".toMap()"方法:
由圖中ModelAndView的源碼可知,其構造器默認對數據使用Map進行封裝,因此爲了符合ModelAndView的代碼規範,這裏對JsonData的異常返回結果進行Map的轉化。
而第一個參數「jsonView」對應spring-servlet.xml中的配置:
Bean配置:
接口測試異常攔截:
使用普通的RuntimeException建立異常對象:
使用自定義的PermissionException建立異常對象:
一、添加環境依賴:
二、建立BeanValidator類
建立TestVo類:
接口測試:
沒有傳參的狀況下,控制檯打印異常報警日誌:
帶參數的請求:
沒有異常報警:
BeanValidator的使用:
說明:BeanValidator是基於註解的,
基於@NotBlank、@NotNull、@NotEmpty等註解
對Object參數進行判空,不作結果返回:
MapUtils用於判空,須要引入相關依賴:
建立參數異常處理類 ParamException.java
測試:
校驗工具 - validator
Json轉換工具 - jackson convert
導入相關依賴:
建立JsonMapper.java類,該類能夠把類轉換爲一個json對象,也能夠把類轉換爲咱們指定的類對象。
建立一個獲取上下文的類:
配置對應的Bean:
測試:經過DB進行驗證操做:
建立HttpInterceptor.java類,繼承HandlerInterceptorAdapter類,對Http請求先後進行監聽
配置Bean被Spring進行管理:
測試:
任何請求在被進行處理前,會先被preHandle方法進行處理,若是該方法處理經過,就會執行postHandle方法,任何請求執行結束後都會被afterCompletion方法進行處理
記錄請求開始到結束所花費的時間
監聽器除了能夠進行登陸時間的監控外,還可進行用戶的cookie、session、登陸是否過時等進行監聽。