关于全局异常:
在业务代码中专注处理业务,而不是返回各种CodeMsg(比如这里只需要知道登录时成功还是失败,其余情况直接抛出异常),可以直接抛出异常,添加一个全局异常类,根据CodeMsg来生成异常, 交由GlobalExceptionHandler全局异常处理器处理(在其中增加if条件分支即可)
springboot之全局异常拦截器
使用异常处理器之前,
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; }
添加异常处理器之后:
//登录的记过只想知道是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; }
关于部署:
教程是这样给的
1、确保正式服务器jdk1.8及数据库环境已经具备 2、配置系统环境变量JAVA_HOME指定jdk1.8路径,注意不要包含空格 3、执行bin/package.bat(.sh)进行打成war包文件,并将此war拷贝到服务器上 4、进行解压war包,配置yml相关参数,运行/WEB-INF/startup.bat(.sh)脚本 5、若需修改jvm参数,编辑startup.bat(.sh)修改JAVA_OPTS参数优化jvm环境 6、支持启动参数增加-Dspring.config.location=x:/app.yml加载指定配置文件 7、若需要配置环境,则指定-Dspring.profiles.active=dev,则加载application-dev.yml属性文件
实际情况是,打包使用外部tomcat部署会报错,这里依然是用SpringBoot内置容器部署
1、源码上传至服务器修改aplication.yml配置数据库和端口。
2、修改LuceneService.java的indexPath路径
3、为了保证任务持续运行,可以使用screen持续会话,
创建名为yuosc的会话:screen -S yuosc
查看所有会话:screen -ls
进入yuosc会话:screen -r yuosc
退出会话:Ctrl-a d
删除会话:screen -X -S [session # you want to kill] quit
4、先给bin/rum-tomcat.sh执行权限,然后后执行编译部署。
5、日志直接在控制台输出,需要打印文件可以修改日志级别。
6、这里给出一些打war包在外部tomcat部署 的方案:
SpringBoot项目部署到外部Tomcat中的方法
Spring-Boot项目部署到单独tomcat运行
转载于:https://www.cnblogs.com/Vito-Yan/p/10499732.html