一.移入依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> &…
1.自定义注解 需要验证登录的注解 package com.etaofinance.wap.common; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.Retention…
一直心心念的想写一篇关于AOP切面实例的博文,拖更了许久之后,今天终于着手下笔将其完成. 基础概念 1.切面(Aspect) 首先要理解‘切’字,需要把对象想象成一个立方体,传统的面向对象变成思维,类定义完成之后(封装).每次实例化一个对象,对类定义中的成员变量赋值,就相当于对这个立方体进行了一个定义,定义完成之后,那个对象就在那里,不卑不亢,不悲不喜,等着被使用,等着被回收. 面向切面编程则是指,对于一个我们已经封装好的类,我们可以在编译期间或在运行期间,对其进行切割,把立方体切开,在原有的方…
前言 在SpringBoot中使用自定义注解.aop切面打印web请求日志.主要是想把controller的每个request请求日志收集起来,调用接口.执行时间.返回值这几个重要的信息存储到数据库里,然后可以使用火焰图统计接口调用时长,平均响应时长,以便于我们对接口的调用和执行情况及时掌握. 添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo…
面向切面编程(Aspect Oriented Programming, AOP)是面向对象编程(Object Oriented Programming,OOP)的强大补充,通过横切面注入的方式引入其他额外功能,比如日志记录,事务处理等,用户无需修改源代码就可以"优雅"的实现额外功能的补充,对于Programmer来说,AOP是个非常强大的工具. AOP中的切面处理逻辑会被应用到我们所定义的切点(Point Cut)上,切面逻辑定义可以使用 around, before,after等As…
1 编程范式 1.1 面向过程 1.2 面向对象 1.3 面向切面编程 1.4 函数式编程 1.5 事件驱动编程 2 什么是面向切面编程 2.1 是一种编程范式,而不是一种编程语言 2.2 解决一些特定的问题 2.3 作为面向对象编程的一种补充 3  AOP产生的初衷 3.1 解决代码重复性问题 Don't Repeat Yourself 3.2 解决关注点分离问题 Separation of Concerns 3.2.1 水平分离(技术上划分) 控制层 -> 服务层 -> 持久层 3.2.2…
java注解 即是注释了,百度解释:也叫元数据.一种代码级别的说明. 个人理解:就是内容可以被代码理解的注释,一般是一个类. 元数据 也叫元注解,是放在被定义的一个注解类的前面 ,是对注解一种限制. 谈下这两个: @Retention 和 @Target @Retention :用来说明该注解类的生命周期.它有以下三个参数: RetentionPolicy.SOURCE  : 注解只保留在源文件中 RetentionPolicy.CLASS  : 注解保留在class文件中,在加载到JVM虚拟机…
背景 项目中为了统一管理项目的配置,比如接口地址,操作类别等信息,需要一个统一的配置管理中心,类似nacos. 我根据项目的需求写了一套分布式配置中心,测试无误后,改为单体应用并耦合到项目中.项目中使用配置文件多是取配置文件(applicatoion.yml)的值,使用@Value获取,为了秉持非侵入性的原则,我决定写一套自定义注解,以实现最少的代码量实现业务需求. 思路 需要实现类似springboot @Value注解获取配置文件对应key的值的功能.但区别在于 我是从自己写的自动配置中获取…
前言 我黄汉三又回来了,快半年没更新博客了,这半年来的经历实属不易,疫情当头,本人实习的公司没有跟员工共患难, 直接辞掉了很多人.作为一个实习生,本人也被无情开除了.所以本人又得重新准备找工作了. 算了,感慨一下,本来想昨天发的,但昨天是清明,哀悼时期,就留到了今天发. 话不多说,直接进入正题吧.这段时间本人在写毕设,学校也迟迟没有开学的消息,属实难顶. 本来被开了本人只想回学校安度"晚年"算了,毕竟工作可以再找,但亲朋好友以后毕业了可能就很少见了. 所以亲们,一定要珍惜身边的人噢.…
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 资深架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.exception.site/springboot/spring-boot-aop-web-request 其实,小哈在之前就出过一篇关于如何使用 AOP 切面统一打印请求日志的文章,那为什么还要再出一篇呢?没东西写了? 哈哈,当然不是!原因是当时的实现方案还是存在缺陷的,原因如下: 不够灵活,由于是以所有 Co…