实现一个简单的AOP

简介: 实现一个简单的AOP

AOP,即面向切面编程,是一种编程范式,它通过在程序中注入切面,实现对关注点的分离,使得开发人员可以更好地实现代码复用和可维护性。

下面是一个简单的 AOP 示例,该示例实现了基本的日志记录功能。在该示例中,我们使用 Spring Boot 中的 AOP 模块来实现 AOP 功能。步骤如下:

定义切面类:
@Aspect
@Component
public class LoggingAspect {

@Before("execution(* com.example.myapp.service.*.*(..))")
public void logMethodCall(JoinPoint jp) {
    String className = jp.getTarget().getClass().getSimpleName();
    String methodName = jp.getSignature().getName();
    System.out.println("[" + className + "." + methodName + "] method called");
}

}
在上例中,我们定义了一个名为 LoggingAspect 的切面类,并使用了 @Aspect 和 @Component 注解。切面类包含切点和通知,切点表示在什么情况下应该应用通知,通知表示要执行的代码。在这个示例中,我们使用了 @Before 注解来定义了一个前置通知,它在 com.example.myapp.service 包中的任何方法调用之前都会执行。在日志中,我们记录了调用的类和方法的名称。

在 Spring Boot 应用程序配置类中启用 AOP:
@Configuration
@EnableAspectJAutoProxy
public class AppConfig {

}
在上例中,我们创建了一个名为 AppConfig 的配置类,并使用 @EnableAspectJAutoProxy 注解启用了 Spring Boot 的 AOP 支持。

在 Spring Boot 应用程序中使用服务类:
@Service
public class MyService {

public void doSomething() {
    // 添加业务逻辑
}

}
在上例中,我们定义了一个名为 MyService 的服务类,在其中实现了一个名为 doSomething() 的方法。

现在我们已经定义了切面类、启用了 AOP,并编写了一个服务类。我们可以在服务类中调用 doSomething() 方法,并查看控制台输出,以验证是否成功应用了 AOP。

相关文章
|
监控 C++ Windows
排错实战——使用process explorer替换任务管理器
可以使用 process explorer 替换任务管理器,本文使用 proccess monitor 监控整个过程
|
安全 测试技术 开发工具
Git分支和标签的命名规范
四个环境分别是:dev、test、pre、pro(master),中文名字:开发环境、测试环境、灰度环境、生产环境 dev环境:开发环境,外部用户无法访问,开发人员使用,版本变动很大。 test环境:测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定 pre环境:灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样。 pro(master)环境:生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境
|
6月前
|
机器学习/深度学习 自然语言处理 人机交互
重磅发布|支持东方40语种+中国22方言的新SOTA语音大模型Dolphin开源啦!
在当今数字化时代,语音识别技术已成为人机交互的关键桥梁,广泛应用于智能客服、语音助手、会议转录等众多领域。
431 0
|
Windows
wsl文件复制
wsl文件复制
209 3
|
JavaScript 前端开发 网络架构
1024特刊|前端开发:Vue路由传递参数和重定向的使用总结
前端开发过程中,作为前端开发者来说关于vue的使用并不陌生,vue相关常用的知识点也是非常重要的,不管是在实际开发中还是在求职面试中都很重要。在vue使用中,路由相关的知识点是非常重要的,而且在实际开发中也是必用知识点,那么本篇博文就来聊聊vue的路由参数传递和路由重定向相关的知识点。
1013 2
1024特刊|前端开发:Vue路由传递参数和重定向的使用总结
|
算法 Java 索引
【每日算法】复制带随机指针的链表:「哈希表」&「原地算法」|Python 主题月
【每日算法】复制带随机指针的链表:「哈希表」&「原地算法」|Python 主题月
|
3天前
|
弹性计算 人工智能 安全
云上十五年——「弹性计算十五周年」系列客户故事(第二期)
阿里云弹性计算十五年深耕,以第九代ECS g9i实例引领算力革新。携手海尔三翼鸟、小鹏汽车、微帧科技等企业,实现性能跃升与成本优化,赋能AI、物联网、智能驾驶等前沿场景,共绘云端增长新图景。
|
9天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
7天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知