拦截器:Interceptor 在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。比如日志,安全等。一般拦截器方法都是通过动态代理的方式实现。可以通过它来进行权限验证,或者判断用户是否登陆,或者是像12306 判 ...
分类:
编程语言 时间:
2020-04-12 12:39:24
阅读次数:
79
一、需求描述: 系统中,如果有一些数据发生异常的情况需要及时处理掉。比如: 跟其他系统对接时候发生异常! 二、思路: 利用切面捕获到某些特定业务接口产生的异常信息,然后 发送到MQ中,MQ获取到异常信息,发送到接收异常报告的邮箱。 末尾有Github地址~ 代码部分 : 三、自定义异常日志的注解 主 ...
分类:
编程语言 时间:
2020-04-09 17:56:30
阅读次数:
89
先看下这个问题的背景:假设有一个spring应用,开发人员希望自定义一个注解@Log,可以加到指定的方法上,实现自动记录日志(入参、出参、响应耗时这些) package com.cnblogs.yjmyzz.springbootdemo.aspect; import java.lang.annota ...
分类:
编程语言 时间:
2020-04-06 23:34:12
阅读次数:
263
1. pom中添加aop的maven依赖 2. 写一个方法来使用aop 3. 添加一个切面,加上注释 @Aspect @Component 注意在springboot默认设置中,@Component组件必须要在application类的同级或者同级目录的下级包中才能被扫描到 4. 执行 ...
分类:
编程语言 时间:
2020-04-06 11:36:17
阅读次数:
50
spring中基于xml的AOP配置步骤 1. 把通知Bean交给spring来管理 2. 使用aop:config标签表明AOP配置 3. 使用aop:aspect标签表明配置切面 id属性:给切面提供一个唯一标识 ref属性:指定通知类bean的id 4.在aop:aspect标签的内部使用对应 ...
分类:
编程语言 时间:
2020-04-05 22:11:59
阅读次数:
66
在日常使用,还有面试中,经常会涉及到AOP的相关知识,AOP虽好,但是有一些小的细节注意不到,可能会被坑; 1.动态代理类的方法互调,被调用的方法会不会生成代理? 2.静态成员类,调用过程中会不会生成代理? 对以上这些问题进行测试: 首页,这是AOP切面代码 @Component @Aspect p ...
分类:
其他好文 时间:
2020-04-02 16:08:10
阅读次数:
73
什么是Spring? Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IoC(Inverse Of Control:反转控制)和AOP(Aspect Oriented Programming:面向切面编程)为内核。 提供了展现层Spring Mvc和持久层Sprin ...
分类:
编程语言 时间:
2020-04-02 01:31:07
阅读次数:
109
关于AOP AOP,面向切面编程是OOP之后出现的概念(大概)。 面向对象基本上就是针对类来设计代码,类中定义方法,逻辑中调用不同的类中不同的方法构成业务。 切面 而面向切面中的切面到底是什么。在业务逻辑中,我们会分很多不同的模块,也有不同的类,而这些类的一些方法中,有一些共性功能。比如认证、日志、 ...
分类:
编程语言 时间:
2020-03-31 22:45:24
阅读次数:
77
Aspect:切面,是封装切入点和通知的功能类。 PointCut:切入点,定义或识别被增强功能的声明,不具体指某个类或方法,描述的是一种类或方法的范围,在切面中可以看做核心点的引用或标记。 JoinPoint:连接点,就是业务核心关注点,实际被增强的目标功能点,简称核心点。 Advice:给目标点 ...
分类:
编程语言 时间:
2020-03-30 13:20:34
阅读次数:
73