首页 > 编程语言 >AspectJ使用

AspectJ使用

时间:2023-03-30 21:12:06浏览次数:35  
标签:.. org System AspectJ 使用 import public AopTest

给下面这个方法增强功能

import org.springframework.stereotype.Component;
/**
 * @Classname: AopTest
 * @Description:
 * @Author: Stonffe
 * @Date: 2023/3/30 20:19
 */
@Component
public class AopTest {
    public void func() {
        System.out.println("function...");
    }
}

切面

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component;

/**
 * @Classname: AopProxy
 * @Description:
 * @Author: Stonffe
 * @Date: 2023/3/30 20:29
 */
@Aspect
@Component
public class AopAspect {
    @Before("execution(public * com.sora.aop.AopTest.func(..))")
    public void before() {
        System.out.println("before...");
    }
    @AfterReturning("execution(public * com.sora.aop.AopTest.func(..))")
    public void afterReturning() {
        System.out.println("afterReturning..");
    }
    @After("execution(public * com.sora.aop.AopTest.func(..))")
    public void after() {
        System.out.println("after..");
    }
    @Around("execution(public * com.sora.aop.AopTest.func(..))")
    public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {
        System.out.println("before around..");
        Object retVal = pjp.proceed();
        System.out.println("after around..");
        return retVal;
    }
}

配置Aspectj

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;

/**
 * @Classname: AopConfig
 * @Description:
 * @Author: Stonffe
 * @Date: 2023/3/30 20:21
 */
@Configuration
@EnableAspectJAutoProxy
@ComponentScan(basePackages = {"com.sora.aop"})
public class AopConfig {
}

结果

public class Aoptest {
    @Test
    public void testAop() {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        AopTest bean = context.getBean(AopTest.class);
        bean.func();
    }
}
before around..
before...
function...
after around..
after..
afterReturning..

标签:..,org,System,AspectJ,使用,import,public,AopTest
From: https://www.cnblogs.com/xiaoovo/p/17274317.html

相关文章

  • 地铁查询系统使用手册
    今天完成对地铁查询系统使用手册的编写。1、引言编写目的:方便用户进行出行。项目背景:基于地铁系统。2、软件概述目标:成功实现输入线路名称,输出所有站点。输入站点名称,输出所有途径该站点的线路名称。输入起始点和终点,输出换乘最短的路径。功能:输出所有线路名称,线路途径站点,......
  • 使用PHP调用OpenAI ChatGPT API接口
    本文介绍如何使用PHP调用OpenAI的文本完成模型ChatGPT的API接口,同时也包括图片生成模型DALL·E接口的调用。 一、SDK实现OpenAI的PHPSDK实现如下,其中ChatGPT使用的模型为gpt-3.5-turbo,如果已经有ChatGPTPlus,并申请到GPT-4的API权限,可以改为GPT-4的模型。classclass_openai......
  • 无法使用Resource注解
    问题描述:学习Spring框架的时候,发现无法使用@Resource注解,只能使用@Autowired注解。问题原因:JDK11删除了javax.annotation包,需要导入,否则无法使用@Resource注解。解决办法:在pom.xml文件中导入依赖。......
  • UITabBarController使用
    [cpp]viewplaincopyprint?1.{2.if([superinit]!=nil){3.UITabBarItem*item=[[UITabBarItemalloc]initWithTitle:@"asdfsadf"image:[UIImageimageNamed:@"WWAN5.png"]tag:1];4......
  • 关于android分辨率和使用iphone版…
    为了节省成本,开发app,一般情况下android和iphone用的是一套设计图。那适配怎么办?今天统计了下android的分辨率主要有:三星i9300 galaxys3 1280x720像素三星galaxys4  1920x1080像素还有经典的分辨率:854x480 还有部分960x540的。他们有个共同的特点,就是高宽比都是 1.......
  • C#使用Java的秘钥对进行SHA256withRSA签名验签
    usingOrg.BouncyCastle.Crypto.Parameters;usingOrg.BouncyCastle.Security;usingSystem;usingSystem.Security.Cryptography;usingSystem.Text;usingSystem.Xml;///<summary>///RSA私钥,从Java格式转.net格式(不依赖第三方包)///</summary>//......
  • 如何使用 MegEngine 生态落地一个算法
    在当今人工智能领域,深度学习算法已经广泛应用于图像处理、自然语言处理、语音识别等各种领域。然而,实现一个高效的深度学习算法需要运用大量的技术和工具,并要面临着许多挑战,如训练计算资源消耗大,模型转换难,高效快捷的推理部署等问题。MegEngine作为一个训推一体的深度学习框架,其......
  • Raphaël 使用 Animation 绘制沿线条移动的圆
    使用Raphael绘制图形时,可以绘制一个圆点沿着指定线条路径进行移动,可以使用Raphael的 Paper.customAttributes增加处理方法和animation进行动画定义。只需要指定正确的raphael.js路径,以下代码就可以运行:<!DOCTYPEhtml><htmllang="en"><head><metacharset="utf-8"><tit......
  • Jtti:如何使用云服务器防火墙保障数据安全?
    云服务器防火墙是保障云计算数据安全的关键措施之一,但是一些安全隐患也需要我们注意。本文将从以下角度探讨如何使用云服务器防火墙保障数据安全。1.防火墙漏洞防火墙程序也可能存在漏洞,影响防护效果。针对漏洞需要及时修复或更新防火墙程序,加强安全保障。2.网络配置不当网络配置不......
  • gdb调试工具使用
    gdb调试工具使用首先使用gcc和-g参数生成含有调试信息的可执行程序,-Wall参数输出warnning,避免未知错误gccxxx.c-oxxx-g-Wallgdb使用参数如下gdb断点操作......