SpringAOP .切面,是Spring得一大特性,使用目前是使用得面还很窄,用气对Controller层做日志管理,其实还可以做参数校验和RSA校验等一系列前置操作。
在所有Controller得每一个方法里面做请求日志记录,会让代码变得很臃肿和阅读得低效。
没有使用统一请求日志记录得时候,我记录Controller的日志十分痛苦:
@RestController
@RequestMapping("gua")
public class GuaController {
private Logger logger = LoggerFactory.getLogger(GuaController.class);
@GetMapping("str")
public ResponseData str() {
logger.info("Request 请求日志: 请求控制器,请求地址 ,请求方法,请求返回值。。。。。。还有很多需要记录的细节,为了追溯。。。");
return ResponseDataUtil.buildSuccess("Result String");
}
@GetMapping("data")
public ResponseData data() {
logger.info("Request 请求日志: 请求控制器,请求地址 ,请求方法,请求返回值。。。。。。还有很多需要记录的细节,为了追溯。。。");
return ResponseDataUtil.buildSuccess(new User());
}
@GetMapping("map")
public ResponseData map() {
logger.info("Request 请求日志: 请求控制器,请求地址 ,请求方法,请求返回值。。。。。。还有很多需要记录的细节,为了追溯。。。");
HashMap map = new HashMap<>(1);
map.put("Result", "Map");
return ResponseDataUtil.buildSuccess(map);