Spring aop @args 用法 demo(—)
来源:互联网 发布:arduino matlab编程 编辑:程序博客网 时间:2024/06/06 06:44
首先说下@args定义:
通过判别目标方法运行时入参对象类是否标注特定注解来指定连接点。如@args(com.yuan.advice.args.PrintArgs) 表示任何一个目标方法,如果方法入参类标注了PrintArgs注解,该方法就会被拦截。
配置文件:
spring-args.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="com.yuan.advice.args" /> <aop:aspectj-autoproxy proxy-target-class="true"/></beans>
注解类:
@Component@PrintArgs(name = "parmentModel")public class ParentModel{ Logger logger = LoggerFactory.getLogger(ParentModel.class); public void methodA(String hello) { logger.info("parmentModel method"); }}
切面类
@Component@Aspect@Order(-1)public class ArgsAspect{ Logger logger = LoggerFactory.getLogger(ArgsAspect.class); @Before("@args(PrintArgs)") public void printArgs(JoinPoint joinPoint) { logger.info("{},此方法入参数标注了PrintArgs注解",joinPoint.getSignature()); }}
入参类
@Component@PrintArgs(name = "parmentModel")public class ParentModel{ Logger logger = LoggerFactory.getLogger(ParentModel.class); public void methodA(String hello) { logger.info("parmentModel method"); }}
目标类:
@Componentpublic class ArgsModel{ Logger logger = LoggerFactory.getLogger(ArgsModel.class); public void testArgs(ParentModel parentModel) { logger.info("入参为{}",parentModel); }}
Test类:
public class ArgsAspectTest{ public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("spring-args.xml"); ArgsModel argsModel = (ArgsModel)context.getBean("argsModel"); ParentModel parentModel = (ParentModel)context.getBean("parentModel"); argsModel.testArgs(parentModel); }}
运行结果:
17:44:55.291 [main] INFO com.yuan.advice.args.ArgsAspect - void com.yuan.advice.args.ArgsModel.testArgs(ParentModel),此方法入参数标注了PrintArgs注解
17:44:55.339 [main] INFO com.yuan.advice.args.ArgsModel - 入参为com.yuan.advice.args.ParentModel@31e5415e。
- 以上为简单spring aop @args用法小demo 。
阅读全文
0 0
- Spring aop @args 用法 demo(—)
- Spring aop @args demo 2.0
- Spring-AOP @AspectJ切点函数之args()和@args()
- Spring-AOP(权限管理Demo)
- spring aop笔记(使用demo)
- spring aop笔记(使用demo)
- spring aop注解Demo
- Spring AOP入门Demo
- Spring AOP 简单demo
- Spring AOP Demo
- Spring Aop Demo
- Spring Aop demo
- Spring Aop demo入门
- Spring aop 小实例demo
- Spring AOP应用实例demo
- spring学习----aop配置demo
- spring aop切面编写demo
- Spring AOP 所有切入点指示符详解(execution,within,this,target,args,@within,@target,@args,@annotation)
- grafana docker 安装使用
- 欢迎使用CSDN-markdown编辑器
- 程序员MAC系统软件推荐
- Qt检测设备是否在线(Ping)
- 20170921
- Spring aop @args 用法 demo(—)
- Mac OS X下Maven的安装与配置
- LeetCode -500. Keyboard Row
- 1095: 时间间隔(多实例测试)
- HDU 6203 贪心 + LCA + dfs序 + BIT
- python 开立方注意事项
- 什么是泛型
- 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
- maven 增加oracle驱动