一 . 概述

  本节是一个示例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操作注解相关推荐

  1. JPOM - AOP+自定义注解实现操作日志记录

    文章目录 地址 版本 源码解析-AOP+自定义注解实现操作日志记录 地址 Gitee: https://gitee.com/dromara/Jpom 官网: https://jpom.io/ 一款简而 ...

  2. AOP(基于注解对AspectJ操作)

    一.AOP底层使用动态代理 (1)有两种情况动态代理 第一种有接口情况,使用JDK动态代理 第二种没有接口情况,使用CGLIB动态代理 1.使用JDK动态代理,使用Proxy类里面的方法创建代理对象 ...

  3. AOP——基于AspectJ的注解来实现AOP操作

    1.使用注解方式实现AOP操作 第一步:创建对象 <!-- 创建对象 --> <bean id="book" class="com.bjxb.aop.B ...

  4. spring aop 自定义注解配合swagger注解保存操作日志到mysql数据库含(源码)

    spring aop 自定义注解保存操作日志到mysql数据库 一.思路 二.自定义注解 三.编写操作日志 四.编写操作日志切面\增强 五.使用 六.`注意` 一.思路 利用spring aop 对方 ...

  5. Spring5学习(七):注解方式进行AOP操作 及 多种通知类型的测试

    先来介绍一下AOP操作中的几个术语: 1.连接点:指类里面可以被增强的方法 2.切入点:指实际被增强的方法 3.通知:指实际增强的逻辑部分 4.切面:把通知应用到切入点的过程 Spring框架一般都是 ...

  6. Spring Aop 常见注解和执行顺序

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:juejin.cn/post/7062506923194581029 Spring 一开始最强大的就是 IOC / AOP 两 ...

  7. Spring_day02--Spring的aop操作

    Spring的aop操作 1 在spring里面进行aop操作,使用aspectj实现 (1)aspectj不是spring一部分,和spring一起使用进行aop操作 (2)Spring2.0以后新 ...

  8. aop 获取注解注释的方法_带有AOP和注释的Java方法记录

    aop 获取注解注释的方法 有时,我想记录(通过slf4j和log4j )方法的每次执行,查看其接收的参数,返回的内容以及每次执行花费的时间. 这是我在AspectJ , jcabi-aspects和 ...

  9. spring AOP自定义注解方式实现日志管理

    转:spring AOP自定义注解方式实现日志管理 今天继续实现AOP,到这里我个人认为是最灵活,可扩展的方式了,就拿日志管理来说,用Spring AOP 自定义注解形式实现日志管理.废话不多说,直接 ...

  10. Java AOP自定义注解

    一.背景 在之前文章:Java注解详解中,主要介绍了注解的含义.作用.以及常用的各类注解.今天主要介绍在Springboot中如何实现一个自定义注解,通过自定义注解去实现一些定制化的需求. 二.了解元 ...

最新文章

  1. IP数据报-格式-分片
  2. hyperion高光谱参数_收藏!光纤光谱仪在激光领域的典型应用
  3. 华为 5G、阿里检测病毒算法、腾讯 AI 一分钟诊断,国内抗疫科技大阅兵!
  4. 重复抽样与非重复抽样
  5. easyUi后台,模板实现前台简易版网上书店功能实现
  6. 色散方程用matlab编译,急切求助用matlab曲线拟合色散方程 - 程序语言 - 小木虫 - 学术 科研 互动社区...
  7. idea保存快捷键_IntelliJ IDEA 快捷键大全 | 终极版
  8. 黑苹果uhd630黑屏_UHD630核显驱动方法及驱动后闪屏严重问题解决记录
  9. 小沙弥密码箱V1.0
  10. python豆瓣mysql_python爬虫获取豆瓣电影——Python操作MySQL存储数据
  11. 蓝牙AOA融合蓝牙信标定位系统的实现
  12. 使用c++实现复数类的运算
  13. Hive 外部表的练习(多表关联查询,以及分组,子查询)
  14. 有时候,人生需要坚持
  15. 英语入门造句专用名词表(共 396 个)
  16. c#做的指示灯控件用法_C#--自定义控件-开发LED指示灯控件(带闪烁效果)
  17. 杀不死的Service
  18. Vue文件上传问题合集
  19. 总结一些emwin运行的奇怪现象
  20. 雷军曾说芯片将如沙子那么便宜,然而沙子涨价促使芯片进一步涨价

热门文章

  1. 最近尝试移植了一下java.awt/javax.swing
  2. error: implicit declaration of function ‘read‘ [-Werror,-Wimplicit-function-declaration]
  3. 可编译运行:调用ffmpeg接口,将RTSP流保存为MP4的C代码
  4. 管理感悟:软件的特性
  5. led led c语言程序设计,单片机C语言程序设计:8X8LED 点阵显示数字
  6. mysql的初始化语句是_MySQL入门之预处理语句的使用
  7. C# Excel 删除指定的工作表
  8. contentprovider java_访问不了自己创建的Contentprovider,报错:java.lang.SecurityException: Permission Denial...
  9. linux命令执行绕过,命令执行绕过
  10. mysql判断后执行查询语句吗_如何看mysql执行的sql语句