關於全局異常:html
在業務代碼中專一處理業務,而不是返回各類CodeMsg(好比這裏只須要知道登陸時成功仍是失敗,其他狀況直接拋出異常),能夠直接拋出異常,添加一個全局異常類,根據CodeMsg來生成異常, 交由GlobalExceptionHandler全局異常處理器處理(在其中增長if條件分支便可)java
使用異常處理器以前,spring
public CodeMsg login(LoginVal loginVal){ if(null==loginVal){ throw new GlobalException(CodeMsg.SERVER_ERROR); } String mobile=loginVal.getMobile(); String password=loginVal.getPassword(); MiaoshaUser user=miaoShaUserDao.getUserById(Long.parseLong(mobile)); if(null==user){ return CodeMsg.MSG_MOBILE_NOT_EXIST; } // if(!user.getPassword().equals(MD5Util.formPassword2DbPass(password,user.getSalt())) ){ return CodeMsg.MSG_PASSWORD_ERROR; } return CodeMsg.SUCCESS; }
添加異常處理器以後:tomcat
service的處理login的業務代碼是這樣的:springboot
//登陸的記過只想知道是true仍是false,其他均是拋出全局異常,交由異常處理器處理 public boolean login(LoginVal loginVal){ if(null==loginVal){ throw new GlobalException(CodeMsg.SERVER_ERROR); } String mobile=loginVal.getMobile(); String password=loginVal.getPassword(); MiaoshaUser user=miaoShaUserDao.getUserById(Long.parseLong(mobile)); if(null==user){ throw new GlobalException( CodeMsg.MSG_MOBILE_NOT_EXIST); } if(!user.getPassword().equals(MD5Util.formPassword2DbPass(password,user.getSalt())) ){ throw new GlobalException(CodeMsg.MSG_PASSWORD_ERROR); } return true; }
關於部署:服務器
教程是這樣給的session
1、確保正式服務器jdk1.8及數據庫環境已經具有 2、配置系統環境變量JAVA_HOME指定jdk1.8路徑,注意不要包含空格 三、執行bin/package.bat(.sh)進行打成war包文件,並將此war拷貝到服務器上 四、進行解壓war包,配置yml相關參數,運行/WEB-INF/startup.bat(.sh)腳本 5、若需修改jvm參數,編輯startup.bat(.sh)修改JAVA_OPTS參數優化jvm環境 六、支持啓動參數增長-Dspring.config.location=x:/app.yml加載指定配置文件 七、若須要配置環境,則指定-Dspring.profiles.active=dev,則加載application-dev.yml屬性文件
實際狀況是,打包使用外部tomcat部署會報錯,這裏依然是用SpringBoot內置容器部署app
一、源碼上傳至服務器修改aplication.yml配置數據庫和端口。jvm
二、修改LuceneService.java的indexPath路徑
三、爲了保證任務持續運行,可使用screen持續會話,
建立名爲yuosc的會話:screen -S yuosc
查看全部會話:screen -ls
進入yuosc會話:screen -r yuosc
退出會話:Ctrl-a d
刪除會話:screen -X -S [session # you want to kill] quit
四、先給bin/rum-tomcat.sh執行權限,而後後執行編譯部署。
五、日誌直接在控制檯輸出,須要打印文件能夠修改日誌級別。
六、這裏給出一些打war包在外部tomcat部署 的方案: