`

SPING 概念

    博客分类:
  • ssh
阅读更多
一、概念
cross-cutting concerns 横向切入功能,和具体的业务逻辑无关,如日志、鉴权等。
Aspect 将cross-cutting concerns收集起来,设计成可以重用的对象,这个对象就叫Aspect
Advice 就是Aspect的具体实现
Joinpoint 就是在程序中执行加入到业务流程的点或者时机。Spring 只支持方法的joinPoint,也就是说只能在方法前后执行。
Pointcut 定义了感兴趣的joinPoint,当调用的方法符合pointcut的表达式的时候,就将advice织入到应用程序中。(这个使用annotation方式比较好理解)
Target               Advice被应用的对象。
Introduction 对于一个现存的类,introduction可以为其增加行为,且不用修改该类的程序。就是在执行期动态地加入一些方法和行为,而不用修改代码。
Proxy 代理。动态代理和静态代理。spring中主要采用动态代理。有部分用CGLIB代理。
weave               Advice被应用到对象的过程叫weave。织入的3个时间点:compile time、classload time、runtime。spring中在运行期织入到目标。
二、spring 的3中实现aop的方式
1、通过实现spring api,并设置代理对象。
2、基于xml的设置,使用<aop>标签。
3、使用基于@AspectJ的Annotation的支持。
三、advice的分类
Before Advice         在对象方法之前执行。通过实现org.springframework.aop.MethodBeforeAdvice接口来实现。
After Advice         在对象方法之后执行。通过实现org.springframework.aop.AfterReturningAdvice接口来实现。
Around Advice        在对象方法前后执行。通过实现org.aopalliance.intercept.MethodInterceptor接口来实现。根据具体情况决定是否调用methodInvocation的proceed()方法
Throw Advice        异常发生时通知某些服务。通过实现org.springframework.aop.ThrowAdvice接口来实现。
要想advice起作用,必须在代理中配置。
四、PointcutAdvisor
接口PointcutAdvisor继承了Advisor接口,在spring中使用PointcutAdvisor提供Pointcut的实例,具体结合Advice,spring内建的Pointcut都有对应的PointcutAdvisor
1、NameMatchMethodPointcutAdvisor,可以用表达式指定advice应用目标上的方法名称。
<bean id="helloadvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
        <property name="mappedName" value="方法正则表达式(如*hello)"/>
         <property name="advice" ref="advice的bean实例"/>
</bean>

2、RegExpMethodPointcutAdvisor
<bean id="regAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
        <property name="pattern" value="方法正则表达式(如*hello)"/>
         <property name="advice" ref="advice的bean实例"/>
</bean>

3、DefaultPointcutAdvisor
<beanid="defaultAdvisor" class="org.springframework.aop.support.DefaultPointcutAdvisor">
<propertyname="advice"ref="adviceBean"></property>
<propertyname="pointcut"ref="pointcutBean"></property>
</bean> 

4、ControlFlowPointcut        Spring 提供的动态pointcut功能
分享到:
评论

相关推荐

    spring简介-spring概念与体系结构

    Spring核心概念 IOC(Inversion of Control)控制反转 使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转。 也就是说,我们把需要新建的对象...

    spring概念总结大全-来自唯哥的帮助

    请下载typora软件来阅读。 本篇文章来自唯爷的帮助。 有助于新手了解spring,适合spring的进阶。

    Spring笔记.doc

    【Spring 概念与优势】 Spring 是一个开源的 Java 应用框架,主要设计目标是简化企业级应用的开发。它的核心特性是依赖注入(Dependency Injection,简称 DI)和面向切面编程(Aspect-Oriented Programming,简称 ...

    spring concept

    博文链接指向的ITEYE博客可能包含了作者对Spring概念的深入理解和实践案例,通过阅读该博客,你可能能够获取到更多关于Spring框架实际应用和技巧的信息。 以上只是Spring框架核心概念的简要介绍,实际上,Spring...

    spring documents

    开发者可以通过研究这些文件了解如何在实际项目中应用Spring概念。 8. **pom.xml**: 这通常是Maven项目的配置文件,用于管理项目依赖和构建过程。虽然Delphi不使用Maven,但这个文件可能包含了关于如何在Java世界中...

    Spring核心概念

    Spring核心概念

    spring_spring_

    3. 示例代码:通过实际运行示例代码,可以加深对Spring概念的理解。 通过以上内容,你将能够理解Spring的基本原理和应用场景,为进一步深入学习和实践Spring框架打下坚实基础。在实践中不断探索,你会发现Spring的...

    spring-AMQP:Spring AMQP 项目将核心 Spring 概念应用于基于 AMQP 的消息传递解决方案的开发

    在Spring AMQP中,核心Spring概念如依赖注入(DI)、面向切面编程(AOP)和模板方法模式被巧妙地融合,简化了与AMQP服务器(如RabbitMQ)的交互。以下是一些关键知识点: 1. **RabbitTemplate**:这是Spring AMQP的...

    spring-boot

    1. **Spring 概念**:了解 Spring Ioc 容器和 AOP 等核心概念。 2. **Maven 或 Gradle**:至少熟悉一种构建工具,用于管理项目依赖。 3. **Java Configuration**:了解如何使用 Java 类替代 XML 配置。 4. **Spring ...

    Spring AMQP 2 中文 参考手册 中文文档

    首先,文档中提到“Spring AMQP项目将核心Spring概念应用于基于AMQP的消息传递解决方案的开发”,这说明Spring AMQP利用了Spring框架的设计理念,将消息发送和接收抽象成一种简便的模板化操作。Spring框架中的依赖...

    spring练习例子

    这个"spring练习例子"可能包含了一些基本的Spring概念和实战教程,旨在帮助初学者理解和掌握Spring的核心功能。 首先,让我们深入理解Spring框架的关键特性: 1. **依赖注入(DI)**:这是Spring的核心特性,允许...

    spring 重要的概念讲解

    本文将深入讲解Spring中的重要概念,包括AOP(面向切面编程)、DI(依赖注入)和IOC(控制反转)。 首先,Spring的轻量级特性体现在其核心包体积小,资源需求低,适合各种规模的应用,特别是小型设备。轻量级意味着...

    spring 2. 技术手册源代码 前六章

    在这一压缩包中,CH02可能是代表第二章的源代码,通常会涵盖基本的Spring概念和配置。 首先,Spring的核心是IoC容器,它负责管理对象的生命周期和对象之间的依赖关系。通过XML配置或注解的方式,开发者可以声明哪些...

    Spring AOP面向方面编程原理:AOP概念

    ### Spring AOP面向方面编程原理:AOP概念详解 #### 一、引言 随着软件系统的日益复杂,传统的面向对象编程(OOP)逐渐暴露出难以应对某些横切关注点(cross-cutting concerns)的问题。为了解决这一挑战,面向方面编程...

    spring视频教程

    spring概念详解IOC,aop等,以及案例开发,与mybatis的整合教程

    Spring MVC基本概念

    ### Spring MVC基本概念 在Java Web开发领域,Spring MVC框架是一种非常流行的模型-视图-控制器(Model-View-Controller,MVC)架构实现。它主要用于构建清晰、可维护的Web应用程序。对于初学者而言,了解Spring ...

    spring-data-neo4j:在使用Neo4j时提供支持以提高Java开发人员的生产率。 使用熟悉的Spring概念,例如用于核心API使用和轻量级存储库样式数据访问的模板类

    它的主要目标是提高Java开发人员的生产力,通过引入与Spring一致的概念,使得开发者能够以他们熟悉的方式处理图数据。本文将深入探讨Spring Data Neo4j的核心特性、工作原理以及如何在实际项目中应用它。 ### 一、...

    Spring技术内幕:深入解析Spring架构与设计原理[汇编].pdf

    本文将深入解析Spring架构和设计原理,对Spring的核心概念、架构设计和关键技术点进行详细介绍。 1. Spring架构设计原理 Spring架构设计的核心思想是松耦合和高内聚,通过将应用程序分解为多个模块,来提高系统的...

    Springboot开发学习路径目录大纲.zip

    2. **Spring 概念**:了解 Spring 框架的核心概念,如依赖注入(DI)、面向切面编程(AOP)以及 Spring MVC。 3. **Maven 或 Gradle**:Spring Boot 使用构建工具管理项目依赖,学习 Maven 或 Gradle 的基本操作。 4...

    spring源码合集spring源码合集

    5. **Spring底层架构核心概念解析**:"03-Spring之底层架构核心概念解析-周瑜"涵盖了Spring的基本架构,如BeanFactory和ApplicationContext,以及它们之间的关系。这部分内容将帮助我们建立Spring的整体架构观,理解...

Global site tag (gtag.js) - Google Analytics