Spring Boot电商项目11:数据库设计与项目初始化六:使用【AOP】来实现【打印,请求与响应的,日志信息】的需求;(遇到了RequestContextHolder来获取请求与响应对象)

说明:

(1)一个问题自己要明白:【J2EE中的过滤器】、【Spring 中的AOP】、【Spring  MVC中的拦截器】;这三个东西看着挺类似的,但这三者是不同的东西;;;;;只是,有时在面对同一个需求时,使用这三个东西貌似都可以解决,而已;简单说明如下:

      ●【过滤器】是在J2EE的标准;这个组件的主要作用就是以url为抓手,来处理请求与响应;可以参考【(5)常用功能与过滤器、监听器、FreeMarker;】中的内容;

      ●【AOP】是在Spring中定义的;其主要作用是以目标类/目标方法为抓手,来给目标类增加功能;可以参考【(15)Spring基础:IoC;AOP;JDBC;】中的内容;;;自然,因为通过【RequestContextHolder】可以获取当前的request对象;所以,如果我们的【AOP】处理的目标类/目标方法是Controller中处理请求与响应的方法的话,那么使用【AOP】技术也可以来处理请求与响应;;;;;这也是为什么本篇博客使用【AOP】技术来实现【打印请求与响应信息的日志】这个需求的原因;

      ●【拦截器】是Spring MVC的标准组件;这个组件也是以url为抓手,来处理请求与响应的;【拦截器】和【过滤器】功能类似,但二者是两个不同的东西;;;;同时【拦截器】底层最基本的实现,就是依赖于Spring AOP理念的;可以参考【(16)SpringMVC基础:入门,RESTful,拦截器】中的内容;

      ● 有关【J2EE中的过滤器】、【Spring 中的AOP】、【Spring  MVC中的拦截器】三者区别的内容;可以参考【Spring 过滤器 拦截器 AOP区别】,【附加:【J2EE中的过滤器】、【Spring 中的AOP】、【Spring MVC中的拦截器】的区别;(不要看,没写完……)】;

(2)这儿在使用AOP注解开发方式时,第一次介绍了【@Pointcut】注解,以及【@Before("webLog()")】和【@AfterReturning(returning = "res", pointcut = "webLog()")】;积累下来就行;

(3)本篇博客介绍了【RequestContextHolder】,其可以获取当前的request对象;关于【RequestContextHolder】的详细内容,可以参考【附加:RequestContextHolder;(可以实现:在非Controller的方法中,获取HttpServletRequest)】;

问题:为什么要使用AOP统一处理web请求日志?

使用AOP去统一处理web请求日志,这样的系统会更加健壮、简洁、效率高。

目录

1.引入【AOP】依赖;

2.创建WebLogAspect切面类,去实现【拦截请求与响应】,以打印请求与响应的信息;(核心重点!!!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值