`
y806839048
  • 浏览: 1121409 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

aop认识综合

阅读更多

 

aop是日志,事物的本质,用动态代理作为原理,注解相当于切点(切入表达式)---即凡是实现定点触发的系列操作都需要此原理(切面是根本)(技术原理:动态代理)---可以理解为用注解的地方都是用aop即都是动态代理原理

切面  织入  目标对象  生成代理对象---有接口的自动用jdk,没有接口的类是cglib(可以指定cglib)

切面:切点,增强

切点:接入点的表达式(切面根据切点表达式即可获取目标方法)

增强:需要执行的加强动作

 

切面有顺序,可以在编译时织入,也可运行时织入,默认运行时织入

 

 

 

切面的顺序

order 越大的优先执行,即时order小的编译在前也会在增强是判断转化过去(@befor)

 

 

自定义的切面优先级不可和事物优先级同级(事物的优先级可以设置)

 

 

aop内部执行的顺序

 代理对象的加强方式形成拦截器链,依次执行---aop最终会按照顺序形成拦截器链

 

切面中目标方法的调用proceed也是用反射的机制调用,在运行时生成代理对象此时把方法名,参数信息放入父类成员变量。在将增强方法形成的拦截器链一起依次利用反射的机制执行。

 

 

代理对象的两大用处

     1,直接代理方法装饰了目标方法。

     2,代理对象的加强方式形成拦截器链,依次执行

 

参看:

https://blog.csdn.net/qq_32331073/article/details/80596084

 

https://blog.csdn.net/luojinbai/article/details/86728469

 

 

环绕通知和前置通知的区别

环绕通知=前置+目标方法执行+后置通知

环绕通知可以改变目标返回值类型(只要是object即可),前置后置不行(空返回)

 

重试次数的实现也是结合切面完成+Ordered接口的实现  实现Ordered 接口的访客可以设计请求次数

切面中接入该方法重试次数和Ordered 属性对比,超过了次数就抛异常

 

@Before  @After @Around 这些都可以单独和目标方法的构成拦截器链,更多的用法是 @Before  @After 空方法体 @Around 环绕前面两种通知

 

参看:

 

https://www.cnblogs.com/gmq-sh/p/6018587.html

 

 

 

 

 

分享到:
评论

相关推荐

    aop_1212_旅游行业课件第十三章人力资源的内部协调.pptx

    - 认识到冲突是组织生存和发展的一部分,提出诱因与贡献的平衡理论。 6. **怀特的“冲突缓冲器”理论**: - 提出通过工作非人格化来减少冲突,如让地位较低的员工为地位较高的员工安排工作。 7. **当代内部协调...

    java SSH 网上银行系统

    Spring框架则提供了依赖注入(DI)和面向切面编程(AOP),帮助管理对象的生命周期,减少代码间的耦合。Hibernate则作为ORM工具,使得Java程序可以方便地操作数据库,通过对象模型与关系数据库进行交互,简化了数据...

    《J2EE体系结构及程序设计》课程评价分析

    (4)情感态度与价值观目标则注重培养学生的主体意识、开放意识和职业道德,使其认识到良好的职业素养在IT行业中的重要性。 学情分析显示,大三学生具有较好的软件工程背景和编程基础,因此课程设计应注重理论与实践...

    java试题(60道)

    【Java试题(60道)】是一份针对Java编程语言的综合练习题集,涵盖了从基础语法到高级特性的各种知识点。这份试题旨在帮助学习者检验自己的Java掌握程度,强化理解,并提升编程技能。试题结合了中英文双语,使得国内外...

    基于ssm会员卡管理系统.zip

    【SSM会员卡管理系统】是一个综合性的项目,它利用了Spring、SpringMVC和MyBatis(简称SSM)这三大Java开发框架,旨在构建一个高效、稳定的会员管理平台。这个系统不仅支持传统的Web访问,还结合了微信小程序,使得...

    基于ssm+H5的新冠防疫宣传网站源码数据库.zip

    这个项目结合了多种技术,旨在提供一个有效的平台,通过信息传播来增强公众对新冠病毒的认识和防控措施。下面我们将详细探讨其中涉及到的关键技术和知识点。 首先,"SSM"是Spring、SpringMVC和MyBatis的缩写,这是...

    基于SSM使用idea构建的旅游网站---毕业设计.zip

    通过学习和实践这个项目,你可以深入理解SSM框架的使用,提升Java Web开发技能,并对构建大型网站有更直观的认识。同时,对于毕业设计而言,这样的项目既具有实际应用场景,又能够锻炼综合运用所学知识的能力。

    企业人力资源管理项目

    Spring框架负责依赖注入(DI)和面向切面编程(AOP),提供事务管理和数据源管理等功能,使得代码更加模块化和易于维护。Struts则作为MVC模式的实现,处理HTTP请求,控制应用程序流程,使业务逻辑与视图层分离。...

    基于ssm+vue银行贷款管理系统.zip

    1. **Spring框架**:Spring是Java企业级应用开发的核心框架,提供了依赖注入(DI)和面向切面编程(AOP)等核心特性,极大地简化了Java应用的构建。在本系统中,Spring负责管理对象的生命周期和依赖关系,实现服务的...

    基于SSM的课堂行为监测系统的后台源码.zip

    总的来说,这个基于SSM的课堂行为监测系统后台源码是一个涵盖了多种技术的综合性项目,不仅体现了SSM框架的灵活运用,也展示了在实际业务场景中如何解决复杂问题的能力。通过深入研究和理解这些源码,开发者能够提升...

    《SSH与SSM架构》课程教学大纲.docx

    - 这些课程为学生建立了对面向对象基本概念、核心机制和特性的正确认识以及对 Java 技术体系及开发规范的全面了解,提供了使用 Java 语言进行 Web 和数据库应用程序设计的实践经验。 - **后续课程**: - Web 信息...

    基于SSM框架的网上花店销售系统(含数据库文件).zip

    这个网上花店销售系统是一个综合性的案例,涵盖了Web开发的多个环节,对于学习和提升SSM框架的使用技能,以及软件工程的实践经验都非常有帮助。通过研究和实践这个项目,学生可以对Java Web开发有更全面的认识。

    实用计算机实习日记三篇.docx

    Struts是MVC设计模式的实现,负责表示层,Spring则处理业务逻辑层,提供了ICO(控制反转)和AOP(面向切面编程),并支持事务管理和与其他框架的集成。Hibernate作为持久层框架,实现了对象与关系数据库之间的映射,...

    JAVA技术面试题

    综上所述,JAVA技术面试题涵盖了从前端到后端、从基础知识到高级概念的多个层面,旨在全面评估应聘者的专业能力和综合素质。面试官应通过合理的提问和对话,深入了解应聘者的技术水平和个人特质,从而做出准确的评价...

    基于SSM+Vue的列车票务信息管理系统+数据库(Java毕业设计,包括源码,教程).zip

    通过这个项目,学习者可以深入理解SSM+Vue的Web应用开发流程,提高Java后端和前端技术的综合运用能力,同时对数据库设计和管理有更深入的认识。对于Java毕业设计或Web开发的学习者而言,这是一个很好的实战练习案例...

    基于SSM的景区(售票)管理系统2拥有两个角色(高分项目).zip

    总的来说,“基于SSM的景区(售票)管理系统2”是一个综合性的项目,涵盖了Web开发的多个关键领域,对提升开发者综合能力具有很高的价值。通过这个项目,开发者可以深入理解如何利用SSM框架搭建一个完整的业务系统,...

    百货中心供应链管理系统.rar

    通过这个项目的实践,开发者不仅可以深化对SSH框架的理解,还能增强在实际项目中的应用能力,同时对数据库设计、项目管理和软件工程也有更深入的认识。这样的系统设计对于计算机专业的学生来说,是一次宝贵的课程...

    基于SSM的同城交易系统和微信小程序源码.zip

    1. **Spring框架**:核心配置文件(如`applicationContext.xml`)、AOP(面向切面编程)配置、Bean定义等。 2. **SpringMVC**:DispatcherServlet配置(`servlet-context.xml`)、视图解析器设置、拦截器配置等。 3....

    狂神说mybatis-29道题源码(练习项目,解压在开发工具中打开即可)

    【动态代理】在Java中,动态代理主要用于实现AOP(面向切面编程)和回调机制。在MyBatis中,动态代理主要体现在SqlSession的实现上。MyBatis通过Java的InvocationHandler接口创建代理对象,当我们调用SqlSession的...

Global site tag (gtag.js) - Google Analytics