2019獨角獸企業重金招聘Python工程師標準>>>
關于日志,主要是利用aop來實現的。cn.demoframe.test.frame.service.LogAspect,這里在方法前做了個切面setReqReachTime,設置了一個請求達到時間。接下來還有個切面,是在controller方法調用返回的時候,做一些參數記錄。pointcut 是這么寫的* cn.demoframe..*.controller..*.*_log(..),早期是所有的添加修改刪除分別對應一個切面方法,現在改為指定的方法(以_log結尾)才做日志,雖然方法命名看起來不是那么美觀,也是跟以前需要事務的配置一樣的思路,開發的人自己決定要不要記日志,開發的人決定要不要使用事務。這里面是很簡陋的日志記錄,對于系統登錄行為記錄了一下日志,其他的,比如是add開頭,就是開發中添加的請求,mod是修改的請求,del是刪除的請求,只能說,更加完善的日志還是需要自己改造的。
參數校驗,網上找了一些利用注解做參數校驗的例子,這里按照自己的想法寫了一個,做實驗用的,文件放的位置不是很規范。具體文件在cn.demoframe.test.core.model,這里是注解和一個枚舉類,cn.demoframe.test.frame.service.ValidateService是具體的參數校驗實現,測試例子在cn.demoframe.test.frame.vmodel.Test。這里的想法就是對于實體類加注解,注解里面有默認的校驗,有自定義的校驗,可以設置返回值,設置錯誤描述,錯誤描述中{0}自動用字段名替換,{1}自動用字段值替換。ValidateService的validate方法根據需要自己添加校驗的實現。
關于22位UUID的改造。? 33*4/6=22。
關于HttpClient,以前用的版本比較舊,新版本不建議使用DefaultHttpClient,于是改造了一下,用CloseableHttpClient,在設置超時時間的時候,每次設置完都調用bulider.build()初始化一下,因為不知道哪個先調用,就這么簡單。調用的方法,有個自定義的超時字符串常量,用來判斷是不是超時。
MailToolkit這個工具類是用來處理郵件發送的,實際上可以使用的地方,比如監控日志文件,當文件size大于多少的時候發郵件做通知,人工查看異常過多的原因,還有,比如說,做忘記密碼功能,發送郵件的時候。這里都沒有。
關于加密工具類,這個后臺管理系統,用戶的密碼是用3des加密后再base64,再md5存儲的。還有一個AES加密,這里沒用到。
完。