SpringBoot ------ 使用AOP处理请求
一。AOP统一处理请求日志
1.spring的两大核心:AOP , IOC


2.面向对象OOP关注的是将需求功能垂直,划分为不同的,并且相对独立的,
会封装成良好的类,并且类有属于自己的行为。
3.AOP则利用的是一种横切的技术,将面向对象构建的强大的类的体系,进行水平的切割;
并且将那些会影响到多个类的公共行为封装成一个可重用的模块。这个模块称为切面。
4.AOP的关键思想就是:将通用逻辑从业务逻辑中分离出来。
5.结合处理请求打印日志这两种需求来观察这两种思想怎么从垂直和水平来划分的。
5.1 一个网络请求的简单的生命周期

5.2 操作数据库也有一个操作数据库的生命周期


二。如何在spring中集成aop,以统一处理请求日志
1.记录每一个Http请求实例
1.1.做个授权访问的功能
A.传统做法:
在每个方法开始进行判断,如果登录了,才可以继续执行;
B.在controller中加个构造方法,在构造方法中进行判断;
但是不行,spring容器启动的时候,就把这些类实例化了,当一次http请求来的时候不会再
执行此构造方法;
C.AOP写一个统一的处理
C1:使用AOP的第一步--添加依赖

C2:往常需要再启动类上加个注解,但是AOP不需要。
C3:建立处理文件:
建立一个aspect包--在包下建立一个文件(HttpAspect.java)-- 类上加@Aspect注解
--再加注解@Component(将文件引入到spring 容器中)-- 在类中写相应的逻辑代码;


1.2.功能需求:希望在htttp请求到controller类的方法中之前,就记录下来;

1.3.验证:加了@Before是否在方法执行直接就执行了
在方法中输出,看哪个先输出。

SpringBoot ------ 使用AOP处理请求的更多相关文章
- (办公)springboot配置aop处理请求.
最近项目用到springboot,就是需要配置一些东西.比如用aop处理请求.方法前通知获取url,method,ip,类方法,参数,方法后通知,返回参数,而且还可以记录一下日志.下面是操作的代码. ...
- SpringBoot使用AOP获取请求参数
最近试了下拦截controller方法查看请求参数,方式如下: package com.*.aop; import com.alibaba.fastjson.JSON; import com.alib ...
- SpringBoot学习笔记(七):SpringBoot使用AOP统一处理请求日志、SpringBoot定时任务@Scheduled、SpringBoot异步调用Async、自定义参数
SpringBoot使用AOP统一处理请求日志 这里就提到了我们Spring当中的AOP,也就是面向切面编程,今天我们使用AOP去对我们的所有请求进行一个统一处理.首先在pom.xml中引入我们需要的 ...
- SpringBoot AOP处理请求日志处理打印
SpringBoot AOP处理请求日志处理打印 @Slf4j @Aspect @Configuration public class RequestAopConfig { @Autowired pr ...
- spring-boot 使用Aop通知打印控制器请求报文和返回报文
一.简介 开发过程中我们往往需要写许多例如: @GetMapping("/id/get") public Result getById( String id) throws Exc ...
- Springboot的日志管理&Springboot整合Junit测试&Springboot中AOP的使用
==============Springboot的日志管理============= springboot无需引入日志的包,springboot默认已经依赖了slf4j.logback.log4j等日 ...
- Spring Boot中使用AOP记录请求日志
这周看别人写的springboot后端代码中有使用AOP记录请求日志,以前没接触过,因此学习下. 一.AOP简介 AOP为Aspect Oriented Programming的缩写,意为:面向切面编 ...
- SpringBoot切面Aop的demo简单讲解
前言 本篇文章主要介绍的是SpringBoot切面Aop的demo简单讲解. SpringBoot Aop 说明:如果想直接获取工程那么可以直接跳到底部,通过链接下载工程代码. 切面(Aop) 一.概 ...
- Spring全家桶——SpringBoot之AOP详解
Spring全家桶--SpringBoot之AOP详解 面向方面编程(AOP)通过提供另一种思考程序结构的方式来补充面向对象编程(OOP). OOP中模块化的关键单元是类,而在AOP中,模块化单元是方 ...
随机推荐
- 深度剖析MQTT协议的整个通信流程
http://www.elecfans.com/d/587483.html MQTT,目前物联网的最主要的协议,基本所有收费的云平台都是基于MQTT协议,比如机智云,和所有的开放云平台比如中国移动的o ...
- 未来it行业发展方向
https://www.zhihu.com/question/24222456 IT行业,未来10年和20年,技术发展方向会是什么? 本人CS 本科刚毕业,正在选择工作方向.希望之后专注一个方向发展. ...
- 开发效率神器 uTools - 偏前端和 UI
本文首发于:Bougie's Blog - 效率神器 uTools 前言 今天组内公众号推荐了 Mac 上的效率神器 Alfred. 详情链接:效率神器 Alfred workflow 插件推荐 早上 ...
- 最近关于linux的一些小问题。
redhat 用yum更新时需要注册付费.centos 不用. 原来版本的ifconfig 在centos中变为了ip addr.
- mongoengine使用示例
#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017年10月19日 @author: zzy ''' from mongo ...
- PHP请求远程地址设置超时时间
file_get_contents 请求超时设置 $timeout = array( 'http'=> array( 'timeout'=>5//设置一个超时时间,单位为秒 ) ); $c ...
- mysql 表的分区
如何判断当前MySQL是否支持分区 命令:show variables like '%partition%' 运行结果: mysql> show variables like '%partiti ...
- R语言学习笔记(四)
6. 数据转换 本章主要讲述apply系列函数:apply.lapply.sapply.tapply.mapply,以及姊妹函数by.split.适用于批量处理数据,而不许循环. 6.1 向量分组 用 ...
- sharepoint_study_5
描述:手动进行SharePoint网页调试图解 解决: 第一步:打开页面的后台代码,设置断点 第二步:添加到进程 第三步:选择SharePoint进程,我这里都选了,如果你知道要调试的页面是哪一个进程 ...
- 【算法笔记】B1024 科学计数法
1024 科学计数法 (20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位, ...