-
===========GirlException============= public class GirlException extends RuntimeException{ private Integer code; public GirlException(ResultEnum resultEnum) { super(resultEnum.getMsg()); this.code=resultEnum.getCode(); } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } } ==========ExceptionHandle =========== @ControllerAdvice public class ExceptionHandle { private final static Logger logger=LoggerFactory.getLogger(ExceptionHandle.class); @ExceptionHandler(value=Exception.class) @ResponseBody public Result handle(Exception e) { if(e instanceof GirlException) { GirlException girlException=(GirlException)e; return ResultUitl.error(girlException.getCode(), girlException.getMessage()); }else { logger.error("【系统异常】{}",e); return ResultUitl.error(-1, e.getMessage()); } } }查看全部
-
=========GirlController======= @RequestMapping("/girlGetAge/{id}") public void getAge(@PathVariable("id") Integer id) throws Exception { girlService.getAge(id); } ==========GirlService============== //异常抛给controller public void getAge(Integer id) throws Exception{ Girl girl=girlRepository.findOne(id); Integer age=girl.getAge(); if(age<10) { throw new GirlException(ResultEnum.PRIMARY_SCHOOL); }else if(age>10 && age<16) { throw new GirlException(ResultEnum.MIDDLE_SCHOOL); } } =========ResultEnum========== public enum ResultEnum { UNKONW_ERROR(-1,"未知错误"), SUCCESS(0,"成功"), PRIMARY_SCHOOL(100,"你在上小学"), MIDDLE_SCHOOL(101,"你在上初中"), ; private Integer code; private String msg; get\set方法...... }查看全部
-
mvn clean package -Dmaven.test.skip=true查看全部
-
@Valid标识要检查的对象参数,检查规则在类注解上已经定义好(由此可见大部分对象属性都要需要受到该规则限制的规则才添加,在需要验证的对象前加@Valid),方法入参加上BindResult对象获得错误信息查看全部
-
mvn clean package打包项目时跳过单元测试: mvn clean package -Dmaven.test.skip=true查看全部
-
mvn clean package对项目打包,在打包时会自动执行所有单元测试查看全部
-
Class Result<T> // 封装最外层Json返回对象 Class ResultUtil // 封装静态方法返回Json对象,精简代码 ------------------抛出异常来接收文本查看全部
-
// 请求参数 ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); // 请求对象 javax.servlet.http.HttpServletRequest request = attributes.getRequest(); // url request.getRequestURL(); // method request.getMethod(); // ip request.getRemoteAddr(); // doBefore(JoinPoint joinPoint) joinPoint.getSignature().getDeclaringTypeName() // 类名 joinPoint.getSignature().getName() // 类方法名 // 参数 joinPoint.getArgs() @AfterReturning(returning = "object", pointcut = "log()")查看全部
-
处理异常的 Code 和 Message 用 Enum枚举 统一管理起来!查看全部
-
发现重复代码,当即优化。以后 = 永不查看全部
-
spring自带日志框架,org.slf4j查看全部
-
@Aspect @Component public class HttpAspect { private final static Logger logger= LoggerFactory.getLogger(HttpAspect.class); @Pointcut("execution(public * com.example.project.web.CustomerContorller.*(..))") public void log(){ } @Before("log()") public void doBefore(){ logger.info("aaaa"); } @After("log()") public void doAfter(){ logger.info("bbbb"); } }查看全部
-
可以这样写。避免出现重复代码有before就会有after。。一般都成对出现 private final static Logger logger=LoggerFactory.getLogger(使用的类名.class);创建日志对象查看全部
-
开发范式查看全部
-
control单元测试查看全部
举报
0/150
提交
取消