一。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处理请求的更多相关文章

  1. (办公)springboot配置aop处理请求.

    最近项目用到springboot,就是需要配置一些东西.比如用aop处理请求.方法前通知获取url,method,ip,类方法,参数,方法后通知,返回参数,而且还可以记录一下日志.下面是操作的代码. ...

  2. SpringBoot使用AOP获取请求参数

    最近试了下拦截controller方法查看请求参数,方式如下: package com.*.aop; import com.alibaba.fastjson.JSON; import com.alib ...

  3. SpringBoot学习笔记(七):SpringBoot使用AOP统一处理请求日志、SpringBoot定时任务@Scheduled、SpringBoot异步调用Async、自定义参数

    SpringBoot使用AOP统一处理请求日志 这里就提到了我们Spring当中的AOP,也就是面向切面编程,今天我们使用AOP去对我们的所有请求进行一个统一处理.首先在pom.xml中引入我们需要的 ...

  4. SpringBoot AOP处理请求日志处理打印

    SpringBoot AOP处理请求日志处理打印 @Slf4j @Aspect @Configuration public class RequestAopConfig { @Autowired pr ...

  5. spring-boot 使用Aop通知打印控制器请求报文和返回报文

    一.简介 开发过程中我们往往需要写许多例如: @GetMapping("/id/get") public Result getById( String id) throws Exc ...

  6. Springboot的日志管理&Springboot整合Junit测试&Springboot中AOP的使用

    ==============Springboot的日志管理============= springboot无需引入日志的包,springboot默认已经依赖了slf4j.logback.log4j等日 ...

  7. Spring Boot中使用AOP记录请求日志

    这周看别人写的springboot后端代码中有使用AOP记录请求日志,以前没接触过,因此学习下. 一.AOP简介 AOP为Aspect Oriented Programming的缩写,意为:面向切面编 ...

  8. SpringBoot切面Aop的demo简单讲解

    前言 本篇文章主要介绍的是SpringBoot切面Aop的demo简单讲解. SpringBoot Aop 说明:如果想直接获取工程那么可以直接跳到底部,通过链接下载工程代码. 切面(Aop) 一.概 ...

  9. Spring全家桶——SpringBoot之AOP详解

    Spring全家桶--SpringBoot之AOP详解 面向方面编程(AOP)通过提供另一种思考程序结构的方式来补充面向对象编程(OOP). OOP中模块化的关键单元是类,而在AOP中,模块化单元是方 ...

随机推荐

  1. kill 进程的一些小细节

    终止前台进程,可以用Ctrl+C组合键.但对于后台进程需要用kill命令. kill PID 还可以加信号(参数),默认情况下是编号为15的信号.term信号将终止所有不能捕捉该信号的进程. -s 可 ...

  2. vmware vSphere虚拟网络(一)

    为了更好的了解vSphere网络虚拟化解决方案,这里引入了一些概念,以便我们更好的了解虚拟网络. 一.网卡: 物理网卡称为vmnic,在ESXi中,第一块物理网卡叫做vmnic0,第二块叫做vmnic ...

  3. 学习TypeScript,笔记一:TypeScript的简介与数据类型

    该文章用于督促自己学习TypeScript,作为学笔记进行保存,如果有错误的地方欢迎指正 2019-03-27  16:50:03 一.什么是TypeScript? TypeScript是javasc ...

  4. 【离散数学】 SDUT OJ 偏序关系

    偏序关系 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 给定有限集上二元关系的关系矩 ...

  5. 在StoryBoard对UICollectionViewCell 进行Autolayout是遇到的Xcode6.01的BUG

    使用Sb对UICollectionViewCell 的内容进行Autolayout约束时候,发现了一个Xcode6.01的BUG,就是你对UICollectionCell约束完了之后,在模拟器上现实的 ...

  6. (STM32F4) Real-time Clock

    老實說Real-time Clok這項功能,我也只有在PC和手機上有見過,其他的應用產品上我也很少見到. 言歸正傳在STM32F4 RTC這項功能在IC內部就有內建,在早期的8051是如果要做RCT是 ...

  7. Qt 学习之路 2(34):贪吃蛇游戏(4)

    Qt 学习之路 2(34):贪吃蛇游戏(4) 豆子 2012年12月30日 Qt 学习之路 2 73条评论 这将是我们这个稍大一些的示例程序的最后一部分.在本章中,我们将完成GameControlle ...

  8. 007 Android 单击事件、toast使用

    第一种按钮点击事件(最常用): button=findViewById(R.id.button); button2=findViewById(R.id.button2); button.setOnCl ...

  9. [WC2008]游览计划(斯坦纳树)

    [Luogu4294] 题解 : 斯坦纳树 \(dp[i][j]\) 表示以\(i\)号节点为根,当前状态为\(j\)(与\(i\)连通的点为\(1\)) 当根\(i\)不改变时状态转移方程是: \( ...

  10. Marlin (思维)

    The city of Fishtopia can be imagined as a grid of 44 rows and an odd number of columns. It has two ...