spring-boot学习笔记(3)
来源:互联网 发布:sql获取整数位数 编辑:程序博客网 时间:2024/06/16 10:08
一表单验证
- 在entity类的属性中加入注解
@Min(value=18, message="未成年禁止入内")
- controller方法参数中加入
pulic Girl girlAdd(@Valid Girl girl,BindingResult bindingResult){
if(bindingResult.hasErrors()){
System.out.println(bindingResult.getFieldError().getEdfaultMessage())
}
}
二 AOP统一处理请求日志
- AOP面向切面,是一种编程范式,与语言无关,是一种程序设计思想
- 只有登陆之后才能进行操作的实现方法
a. 在pom文件中添加依赖
<artifactId>spring-boot-starter-aop</artifactId>
b. 新建一个处理Java Class文件 添加注解@Aspect @Component
@Before("execution(public * com.cn.controller.GirlController.方法名(..))")
请求某个方法之前做该操作
public void log(){在该方法之前进行操作} 还有After方法 - 对b进行优化
@Pointcut(execution(public * com.cn.controller.GirlController.方法名(..))
public void log(){}
@Before("log")
public void doBefore(){}
三 log的使用
- 在HttpAspect文件中
private final static Logger logger = LoggerFactory.getLogger(HttpAspect.class);
参数为所在类的类名
logger.info(“标注内容”) 写入日志的信息
四 获取访问某个方法的请求信息
在public void doBefore()传入参数JoinPoint joinPoint
ServletRequestAttributes attributes =(ServletRequestAttributes)RequestContextHolder.getRequestAttributes();HttpServletRequest request = attributes.getRequest();logger.info("url={}", request.getRequestURL()); URLlogger.info("method={}", request.getMethod()); GET PUTlogger.info(""ip={},request.getRemoteAddr()); ip地址logger.info("class_method={}", joinPoint.getSignature().getDeclaringTypeName()+"."+joinPoint.getSignature().getName()) 类名logger.info("class_arguement={}",joinPoint.getArgs());
获取某个方法返回的信息
@AfterReturning(returning="object", pointcut="log()")public void doAfterReturning(Object object){logger.info("response={}",object.toString()); 需要函数返回的对象有toString 方法}
五.统一异常处理
- 新建一个Result 类,类中写上code ,msg,data三个属性
- 写一个ResultUtil 类
public static Result success(Object object){
Result result =new Result();
result.setCode(200);
result.setMsg("成功");
result.setData(object);
return result;
}
public static Result success(){
return success(null);
}
public static Result error(Integer code,String msg){
Result result = new Result();
result.setCode(code);
result.setMsg(msg);
return result;
} - 调用
if(bindingResult.hasErros()){
return ResultUtil.error("404",bindingResult.getFieldError().getDefaultMessage();
}
.....
return Result.success(girlRepository.save(girl));
六.异常捕获
定义一个异常类
public class GirlException extends RuntimeExpection{ //spring只会回滚RuntimeExpectionprivate Integer code;public GirlException(Integer code,String message){ super(message); this.code=code;}getCode()/setCode()方法}
定义一个异常处理类
public class ExceptionHandle{@ExceptionHandle(value = Exception.class)@ResponseBodypublic Result handle(Exception e){if(e instanceof GirlException){ GirlException girlException = (GirlException) e; return ResultUtil.error(girlException.getCode(), girlException.getMessage());}else{ return ResultUtil.error(-1,"未知错误");}}
在service中调用
public void getAge(Integer id) throws Exception{if(age
阅读全文
0 0
- spring-boot学习笔记(3)
- spring-boot学习笔记3
- spring-boot学习笔记
- Spring Boot学习笔记
- Spring Boot学习笔记
- spring boot 学习笔记
- Spring Boot学习笔记
- Spring Boot学习笔记
- Spring Boot 学习笔记
- spring boot学习笔记
- Spring Boot 学习笔记
- Spring Boot 学习笔记(-)
- Spring Boot 学习笔记
- Spring Boot学习笔记
- Spring-boot学习笔记
- spring boot 学习笔记
- Spring Boot 学习笔记
- spring boot 学习笔记
- 组装FFmpeg,为我所用
- html中用js实现的表格隔行换色
- Kafka学习笔记——centos7下kafka安装配置与验证
- Elasticsearch之映射(mapping)。
- 剑指offer--(8) 跳台阶
- spring-boot学习笔记(3)
- php常用正则表达式
- Android Api demo系列(22) (Graphics>Patterns)
- USB驱动之XHCI驱动调试总结一
- hdfs统计某个目录下的文件数
- First Code
- Android SharedPreferences详解
- hadoop集群安装配置
- QT 开源项目由源码生成Pro项目文件