011 使用AOP操作注解
一 . 概述
本节是一个示例i程序的演示,说明之前讲解的这些知识.
二 .演示
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface MyAnnotation {String name() default "";}
首先我们定义了一个注解,这个注解有一个参数name.
定义我们的切面类:
@Aspect @Component public class MyAspect {//此处表示的意思是,des的注解信息被注入到des变量上面去.@Around(value="@annotation(des)")public void around(ProceedingJoinPoint point,MyAnnotation des) throws Throwable {//现在我们的方法可以切入到含有指定注解的方法之中.System.out.println("被拦截的类为-->"+point.getSourceLocation().getWithinType().getName());//获取方法的名称String mathodName = point.getSignature().getName();System.out.println("方法的名字是:-->" + mathodName);//获取方法的参数System.out.println("方法的参数为-->"+Arrays.toString(point.getArgs()));//获取注解的内容String name = des.name();System.out.println("目标对象上的注解的name属性的值为-->" + name);//执行目标方法 point.proceed();} }
目标对象:
@Component public class Proxy {@MyAnnotation(name="abc")public void proxy(String name) {System.out.println("proxy...");} }
配置类:
@Configuration @EnableAspectJAutoProxy(proxyTargetClass=true) @ComponentScan("com.trek.demo") public class Config { }
需要注意的就是,我们一定要开启AOP注解驱动.
测试代码:
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Config.class);Proxy proxy = (Proxy) context.getBean("proxy");proxy.proxy("trek");
三 .总结
[1] 我们通过注解的方式可以完成注解属性的获取,以后这个例子就可以作为一个模板
[2]其实point.getSourceLocation()就是获取类的信息
[3]其实point.getSignature()就是获取代理method对象的方法.
转载于:https://www.cnblogs.com/trekxu/p/9098238.html
011 使用AOP操作注解相关推荐
- JPOM - AOP+自定义注解实现操作日志记录
文章目录 地址 版本 源码解析-AOP+自定义注解实现操作日志记录 地址 Gitee: https://gitee.com/dromara/Jpom 官网: https://jpom.io/ 一款简而 ...
- AOP(基于注解对AspectJ操作)
一.AOP底层使用动态代理 (1)有两种情况动态代理 第一种有接口情况,使用JDK动态代理 第二种没有接口情况,使用CGLIB动态代理 1.使用JDK动态代理,使用Proxy类里面的方法创建代理对象 ...
- AOP——基于AspectJ的注解来实现AOP操作
1.使用注解方式实现AOP操作 第一步:创建对象 <!-- 创建对象 --> <bean id="book" class="com.bjxb.aop.B ...
- spring aop 自定义注解配合swagger注解保存操作日志到mysql数据库含(源码)
spring aop 自定义注解保存操作日志到mysql数据库 一.思路 二.自定义注解 三.编写操作日志 四.编写操作日志切面\增强 五.使用 六.`注意` 一.思路 利用spring aop 对方 ...
- Spring5学习(七):注解方式进行AOP操作 及 多种通知类型的测试
先来介绍一下AOP操作中的几个术语: 1.连接点:指类里面可以被增强的方法 2.切入点:指实际被增强的方法 3.通知:指实际增强的逻辑部分 4.切面:把通知应用到切入点的过程 Spring框架一般都是 ...
- Spring Aop 常见注解和执行顺序
欢迎关注方志朋的博客,回复"666"获面试宝典 来源:juejin.cn/post/7062506923194581029 Spring 一开始最强大的就是 IOC / AOP 两 ...
- Spring_day02--Spring的aop操作
Spring的aop操作 1 在spring里面进行aop操作,使用aspectj实现 (1)aspectj不是spring一部分,和spring一起使用进行aop操作 (2)Spring2.0以后新 ...
- aop 获取注解注释的方法_带有AOP和注释的Java方法记录
aop 获取注解注释的方法 有时,我想记录(通过slf4j和log4j )方法的每次执行,查看其接收的参数,返回的内容以及每次执行花费的时间. 这是我在AspectJ , jcabi-aspects和 ...
- spring AOP自定义注解方式实现日志管理
转:spring AOP自定义注解方式实现日志管理 今天继续实现AOP,到这里我个人认为是最灵活,可扩展的方式了,就拿日志管理来说,用Spring AOP 自定义注解形式实现日志管理.废话不多说,直接 ...
- Java AOP自定义注解
一.背景 在之前文章:Java注解详解中,主要介绍了注解的含义.作用.以及常用的各类注解.今天主要介绍在Springboot中如何实现一个自定义注解,通过自定义注解去实现一些定制化的需求. 二.了解元 ...
最新文章
- IP数据报-格式-分片
- hyperion高光谱参数_收藏!光纤光谱仪在激光领域的典型应用
- 华为 5G、阿里检测病毒算法、腾讯 AI 一分钟诊断,国内抗疫科技大阅兵!
- 重复抽样与非重复抽样
- easyUi后台,模板实现前台简易版网上书店功能实现
- 色散方程用matlab编译,急切求助用matlab曲线拟合色散方程 - 程序语言 - 小木虫 - 学术 科研 互动社区...
- idea保存快捷键_IntelliJ IDEA 快捷键大全 | 终极版
- 黑苹果uhd630黑屏_UHD630核显驱动方法及驱动后闪屏严重问题解决记录
- 小沙弥密码箱V1.0
- python豆瓣mysql_python爬虫获取豆瓣电影——Python操作MySQL存储数据
- 蓝牙AOA融合蓝牙信标定位系统的实现
- 使用c++实现复数类的运算
- Hive 外部表的练习(多表关联查询,以及分组,子查询)
- 有时候,人生需要坚持
- 英语入门造句专用名词表(共 396 个)
- c#做的指示灯控件用法_C#--自定义控件-开发LED指示灯控件(带闪烁效果)
- 杀不死的Service
- Vue文件上传问题合集
- 总结一些emwin运行的奇怪现象
- 雷军曾说芯片将如沙子那么便宜,然而沙子涨价促使芯片进一步涨价
热门文章
- 最近尝试移植了一下java.awt/javax.swing
- error: implicit declaration of function ‘read‘ [-Werror,-Wimplicit-function-declaration]
- 可编译运行:调用ffmpeg接口,将RTSP流保存为MP4的C代码
- 管理感悟:软件的特性
- led led c语言程序设计,单片机C语言程序设计:8X8LED 点阵显示数字
- mysql的初始化语句是_MySQL入门之预处理语句的使用
- C# Excel 删除指定的工作表
- contentprovider java_访问不了自己创建的Contentprovider,报错:java.lang.SecurityException: Permission Denial...
- linux命令执行绕过,命令执行绕过
- mysql判断后执行查询语句吗_如何看mysql执行的sql语句