Spring框架AOP的使用及个人对底层原理的理解

简介: Spring框架AOP的使用及个人对底层原理的理解前言:AOP是目前Spring框架中的核心之一,在应用中具有非常重要的作用,也是Spring其他组件的基础。它是一种面向切面编程的思想。关于AOP的基础知识,相信多数童鞋都已经了如指掌,今天要给大家分享的是Spring框架AOP的使用,以及我个人对底层原理的一些理解。

Spring框架AOP的使用及个人对底层原理的理解QQ_20190730163049

前言:

AOP是目前Spring框架中的核心之一,在应用中具有非常重要的作用,也是Spring其他组件的基础。它是一种面向切面编程的思想。关于AOP的基础知识,相信多数童鞋都已经了如指掌,今天要给大家分享的是Spring框架AOP的使用,以及我个人对底层原理的一些理解。

Aop使用步骤

配置aop信息

相当于aop的根节点

配置切入点

切入点 可以理解为需要增强的方法的位置

如:

execution( com.mmr.entity.People.(..) )

表示这个切入点的位置在com.mmr.entity.People 这个类里;

第一个星号:表示访问权限是任意,也可以设置为private,protected。。。。。

第二个星号:表示People类下面的所有方法

(..)表示任意参数

包后面两个点表示包含子包下面的类,单点不包含子包

配置切入面

ref 指定的是用什么类来增强,指向的是一个bean

配置切入时间

......此类标签指定切入时间

after---最终 相当于try catch 中的finally

after-returning 后置,方法无异常执行完后

method 指定用哪个方法来增强(ref中指向的类中的方法)

pointcut-ref 指定增强的切入点

配置示例:

注意:

spring Aop 底层采用了动态代理(jdk自带的动态代理 + cglib 动态代理)的方式来实现增强

所以如果被增强的类(委托类)实现了接口,则会采用jdk自带的动态代理方式,所以需要使用接口来接收,不能直接使用实现类接收!

而如果委托类未实现接口,则采用cglib动态代理的方式,所以可以用委托类直接接收

喜欢这篇文章的话,可以给作者点个喜欢,点下关注,每天都会分享Java相关文章!

记得一定要关注我哦,会不定时的福利赠送,包括整理的面试题,学习资料,源码等~~

相关文章
|
4天前
|
JSON 前端开发 Java
Spring Boot框架中的响应与分层解耦架构
在Spring Boot框架中,响应与分层解耦架构是两个核心概念,它们共同促进了应用程序的高效性、可维护性和可扩展性。
24 3
|
4天前
|
Java 编译器 Spring
Spring AOP 和 AspectJ 的区别
Spring AOP和AspectJ AOP都是面向切面编程(AOP)的实现,但它们在实现方式、灵活性、依赖性、性能和使用场景等方面存在显著区别。‌
17 2
|
5天前
|
人工智能 缓存 Java
深入解析Spring AI框架:在Java应用中实现智能化交互的关键
【10月更文挑战第12天】Spring AI 是 Spring 框架家族的新成员,旨在满足 Java 应用程序对人工智能集成的需求。它支持自然语言处理、图像识别等多种 AI 技术,并提供与云服务(如 OpenAI、Azure Cognitive Services)及本地模型的无缝集成。通过简单的配置和编码,开发者可轻松实现 AI 功能,同时应对模型切换、数据安全及性能优化等挑战。
|
1天前
|
Java Spring 容器
Spring底层原理大致脉络
Spring底层原理大致脉络
|
1天前
|
开发框架 Java API
「SpringBrick快速入门指南」:一款基于Spring Boot的高级插件化开发框架
「SpringBrick快速入门指南」:一款基于Spring Boot的高级插件化开发框架
6 0
|
1天前
|
人工智能 Java API
阿里云开源 AI 应用开发框架:Spring AI Alibaba
阿里云开源 Spring AI Alibaba,旨在帮助 Java 开发者快速构建 AI 应用,共同构建物理新世界。
|
2天前
|
监控 Java 开发者
BeanPostProcessor:Spring框架的灵活扩展机制
【10月更文挑战第4天】在Spring框架中,BeanPostProcessor接口是一个非常重要的扩展点,它允许开发者在Spring容器实例化、依赖注入以及初始化Bean的过程中插入自定义逻辑。
9 0
|
2天前
|
机器学习/深度学习 移动开发 自然语言处理
基于人工智能技术的智能导诊系统源码,SpringBoot作为后端服务的框架,提供快速开发,自动配置和生产级特性
当身体不适却不知该挂哪个科室时,智能导诊系统应运而生。患者只需选择不适部位和症状,系统即可迅速推荐正确科室,避免排错队浪费时间。该系统基于SpringBoot、Redis、MyBatis Plus等技术架构,支持多渠道接入,具备自然语言理解和多输入方式,确保高效精准的导诊体验。无论是线上医疗平台还是大型医院,智能导诊系统均能有效优化就诊流程。
|
2天前
|
NoSQL Java 数据库连接
springBoot:整合其他框架&condition&切换web配置 (五)
本文档介绍了如何在Spring Boot项目中整合JUnit、Redis和MyBatis等框架,并提供了相应的依赖配置示例。同时,还展示了如何通过条件注解实现Bean的条件创建,以及如何切换Web服务器配置,从默认的Tomcat切换到Jetty。
|
3天前
|
SQL XML 监控
SpringBoot框架日志详解
本文详细介绍了日志系统的重要性及其在不同环境下的配置方法。日志用于记录系统运行时的问题,确保服务的可靠性。文章解释了各种日志级别(如 info、warn、error 等)的作用,并介绍了常用的日志框架如 SLF4J 和 Logback。此外,还说明了如何在 SpringBoot 中配置日志输出路径及日志级别,包括控制台输出与文件输出的具体设置方法。通过这些配置,开发者能够更好地管理和调试应用程序。