首页 > 编程语言 >Spring AOP和AspectJ

Spring AOP和AspectJ

时间:2024-04-23 14:33:51浏览次数:30  
标签:Spring 织入 切面 AOP 方法 AspectJ

AOP :Aspect Oriented Programming,即面向切面编程

是一种编程思想,是OOP(面相对象编程)的一个补充,实现对一类功能的集中处理,而不是在每个需要处理的地方进行直接的方法调用,常用于实现一些业务无关的功能(如事务控制、日志记录、安全控制、数据统计、异常处理等)

 

Spring AOP:

依赖于Spring框架,基于代理实现的,只能用于bean。 

在Spring启动时,使用动态代理,将切面逻辑织入到目标对象的方法调用中

只支持方法级别的连接点,只能拦截方法调用

提供Before、After、AfterReturning、AfterThrowing和Around等通知类型

通过Spring容器来管理和配置切面、切入点和通知,可以基于注解和XML配置的方法来进行配置

对于复杂的切面和大规模的应用,性能略低,因为是在运行时进行的动态代理

 

AspectJ AOP:

是一个独立的框架,不依赖于Spring,既可以在编译时、也可以在运行时进行切面逻辑的织入,并提供了更细粒度的切入点选择

需要使用特定的编译器(ajc),或者在运行时通过AspectJ的织入器来进行织入

支持更多的连接点,包括方法调用、方法执行、字段访问、异常处理等

提供Before、After、AfterReturning、AfterThrowing和Around等通知类型

支持引入(Introduction)和动态切面等功能

性能高效,可以在编译时进行织入,较少了运行时的开销

标签:Spring,织入,切面,AOP,方法,AspectJ
From: https://www.cnblogs.com/huainanyin/p/18139182

相关文章

  • SpringBoot的Cookie sameSite之坑
    https://blog.csdn.net/weixin_38296425/article/details/111941318 CSDN上很多文章给出了解决CookiesameSite坑跨域之坑的解决办法,但是都忽略了一个问题,没有给出相关的依赖,我也是费了不少劲终于找到了解决办法,在这里记录下来。例如下面的代码:@ConfigurationpublicclassT......
  • SpringBoot3使用自带日志组件Logback
    参考:https://blog.csdn.net/AIJXB/article/details/128602818pom.xml<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></dependency>application.yaml配置l......
  • sh004基于springboot的MES生产制造执行系统【带LW文档】
    介绍基于springboot的MES生产制造执行系统管理员功能主要包括:生成计划管理、产品信息管理、销售订单管理、客户信息管理、物料信息管理、工业线路管理工序信息管理、员工管理、部门管理、个人中心等功能。员工功能结构图。其中员工查看工序信息,查看工艺线路,查看物料信息,查看产......
  • sh005基于springboot的景区订票系统【带LW文档】
    介绍基于springboot的景区订票系统管理员功能主要包括:个人中心、景点类型管理、公告类型管理、景点信息管理、公告信息管理、论坛管理、用户信息管理、轮播图管理、景点留言管理、景点收藏管理、景点预定管理等功能。由于本系统的功能模块设计比较全面,所以使得整个基于springbo......
  • Spring Security认证相关(一)
    会话管理SpringSecurity认证成功之后会保存会话信息,将认证信息保存在Session,发送JSESSIONID数据给浏览器保存在Cookie中,浏览器访问的时候携带Cookie,服务器根据JSESSIONID找到Session。在SpringSecurity中会话创建策略有下面几种:设置超时://会话http.sessionManagement(s......
  • Spring 源码阅读(二)IoC 容器初始化以及 BeanFactory 创建和 BeanDefinition 加载过程
    相关代码提交记录:https://github.com/linweiwang/spring-framework-5.3.33IoC容器三种启动方式XMLJavaSE:ApplicationContextcontext=newClassPathXmlApplicationContext("beans.xml")ApplicationContextcontext=newFileSystemXmlApplicationContext("C:/beans......
  • flutter 结合 springBoot 完成登录 注册 功能
    后端接口 前端调用接口代码import'package:dio/dio.dart';import'package:flutter/material.dart';import'../page/login.dart';//注册功能Future<void>register(BuildContextcontext,Stringusername,Stringpassword,......
  • sh002基于springboot的网上团购系统
    介绍网上团购系统管理员功能主要包括:个人中心、用户管理、商品列表管理、团购商品管理、订单管理、系统管理等功能由于本系统的功能模块设计比较全面,所以使得整个网上团购系统信息管理的过程得以实现。获取方式:联系QQ422149197软件架构推荐使用:谷歌浏览器后台地址http://lo......
  • sh003基于springboot的汽车租赁系统
    sh003基于springboot的汽车租赁系统 介绍汽车租赁系统管理员功能主要包括:系统设置管理、用户管理、留言板管理、公告类型管理、公告管理等功能由于本系统的功能模块设计比较全面,所以使得整个汽车租赁系统信息管理的过程得以实现。软件架构推荐使用:谷歌浏览器前台登录页......
  • sh001基于springboot+vue的线上医院挂号系统[带LW文档]
    介绍线上医院挂号系统管理员功能主要包括:个人信息管理、用户管理、论坛管理、医生管理、医生留言管理、单页数据管理、个人中心基础数据管理、医生挂号订单管理、轮播图设置等功能由于本系统的功能模块设计比较全面,所以使得整个线上医院挂号系统信息管理的过程得以实现。获取......