一、@Valid验证
场景:添加部门信息时,增加部门下的人数;满足一定人数可以被成功添加,否则返回NULL
//部门人数 @Min(value=18,message="不满足18个人,不能成立新部门!") private Integer count; //get/set 方法 @PostMapping(value="/saveDept") public DeptTemp saveDept(@Valid DeptTemp temp, //错误信息返回对象 BindingResult result){ if (result.hasErrors()) { //如果有错误信息,则打印 并返回 System.out.println(result.getFieldError().getDefaultMessage()); return null; } temp.setdName(temp.getdName()); temp.setLoc(temp.getLoc()); temp.setCount(temp.getCount()); return deptRespository.save(temp); }
由于,我们处理了验证不同过时的信息,如果验证不通过时会在控制台打印“自定义的验证信息,例如:不满足18个人,不能成立新部门!”
否则的话,此访问路径则会返回“500”错误,运行时异常;
在满足正确的条件下则可以被添加数据库,否则被拒之门外。
二、AOP统一处理日志
AOP是一种编程规范,与语言无关,是一种程序设计思想;
场景:记录下每次访问的请求
第一步:添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>
第二步:定义Aspect类
@Aspect @Component //该文件引用到spring 容器里 public class HttpAspect { @Before("execution(public * com.test.controller.DeptController.getList(..))") public void log(){ System.out.println("Aspect:log"); } }
该log方法将作用在getList方法上面,并且先于该方法之前打印出日志。
同样也会有After方法,方法同上。
//Spring自带的日志框架,底层实现是logback private final static Logger logger = LoggerFactory.getLogger(HttpAspect.class); @Pointcut("execution(public * com.test.controller.DeptController.getList(..))") public void log(){ } @Before("log()") public void doBefore(){ logger.info("Aspect:before:log"); } @After("log()") public void doAfter(){ logger.info("Aspect:after:log"); }
原文地址:http://blog.51cto.com/mazongfei/2134465
时间: 2024-11-02 12:07:34