基于spring@aspect注解的aop实现过程代码实例

网友投稿 364 2022-12-12


基于spring@aspect注解的aop实现过程代码实例

@AspectJ 作为通过 java 5 注释注释的普通的 Java 类,它指的是声明 aspegkKTprcts 的一种风格。通过在你的基于架构的 XML 配置文件中包含以下元素,@AspectJ 支持是可用的。

第一步:编写切面类

package com.dascom.hawk.app.web.tool;

import org.aspectj.lang.JoinPoint;

import org.aspectj.lang.ProceedingJoinPoint;

import org.aspectj.lang.annotation.After;

import org.aspectj.lang.annotation.Around;

import org.aspectj.lang.annotation.Aspect;

import org.aspectj.lang.annotation.Before;

import org.aspectj.lang.annotation.Pointcut;

import org.springframework.stereotype.Component;

@Aspect

@Component

public class AnnotationAspectJ {

//定义切面("execution(* com.dascom.common.aop.*.*(..)))

//当前配置的意思是所有添加了SuiteMessage的注解的方法作为切点

@Pointcut("@annotation(com.dascom.common.annotation.SuiteMessage)")

public void logPointCut() {

}

//前置通知

@Before("logPointCut()")

public void before(JoinPoint point) {

String calssName = point.getTarget().getClass().getName();

String method = point.getSignature().getName();

System.out.println(calssName + " : " + method);

}

//后置通知

@After("logPointCut()")

public void after(JoinPoint point) {

String method = point.getSignature().getName();

System.out.println(method + ": end----");

}

//环绕通知

@Around("logPointCut()")

public Object around(ProceedingJoinPoint point) throws Throwable {

long beginTime = System.currentTimeMillis();

// 执行方法

Object result = point.proceed();

// 执行时长(毫秒)

long time = System.currentTimeMillis() - beginTime;

//异步保存日志

System.out.println(time);

http:// return result;

}

}

第二步:在spring的配置文件中添加注解扫描

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xmlns:aop="http://springframework.org/schema/aop"

xmlns:context="http://springframework.org/schema/context"

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans.xsd

http://springframework.org/schema/aop http://springframework.org/schema/aop/spring-aop.xsd

http://springframework.org/schema/context http://springframework.org/schema/context/spring-context.xsd">

gkKTpr

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xmlns:aop="http://springframework.org/schema/aop"

xmlns:context="http://springframework.org/schema/context"

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans.xsd

http://springframework.org/schema/aop http://springframework.org/schema/aop/spring-aop.xsd

http://springframework.org/schema/context http://springframework.org/schema/context/spring-context.xsd">

gkKTpr

第三步:搞定。爽歪歪~~~


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot实现发送邮件功能过程图解
下一篇:Spring bean生命周期配置过程解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~