Spring学习(九)--Spring的AOP

1、配置ProxyFactoryBean

Spring IOC容器中创建Spring AOP的方法。

(1)配置ProxyFactoryBean的Advisor通知器

通知器实现定义了对目标对象进行增强的切面行为,即Advice通知。

(2)定义ProxyFactoryBean类

设定实现AOP的重要属性,如proxyInterface、interceptorNames、target等。

interceptorNames:需要定义的通知器,通知器在proxyFactoryBean的配置下,通过代理对象起到拦截器的作用。

(3)定义target属性

通过target注入的bean,是需要通过AOP切面增强的对象。

2、ProxyFactoryBean生成的AOPproxy对象

具体实现需要通过动态代理特性。

AOPproxy对象生成流程:

(1)以FactoryBean的getObject()为入口开始,通过getObject方法调用inITIallizeAdvisorChain()方法。

(2)通过inITIallizeAdvisorChain方法初始化advisor链,初始化时提供一个标志位,确定是否初始化。如果未曾初始化过,通过ProxyFactoryBean获取代理对象之后完成初始化,初始化后读取配置中的通知器,通过getbean(name)方法获取通知器。

3、JDK生成AopProxy代理对象

(1)AopProxy接口中实现JdkDynamicAopProxy方法,在方法中调用JDK的Proxy类来生成代理对象.

(2)生成代理对象前,需要从advised对象中取得代理对象的代理接口配置,然后调用Proxy类的newProxyInstace方法来得到对应的Proxy代理对象。

  生成代理对象时,需要阐明三个参数:类装载器、代理接口、Proxy回调方法所在的对象。

  Proxy回调的方法所在的对象需要实现InvocationHandler接口,接口中定义了invoke方法,提供代理对象的回调入口。

原文地址:https://www.cnblogs.com/carblack/p/10957007.html

时间: 2024-10-10 19:27:04

Spring学习(九)--Spring的AOP的相关文章

spring学习九 spring aop详解

本文来自于:https://www.cnblogs.com/jingzhishen/p/4980551.html AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善.OOP引入封装.继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合.当我们需 要为分散的对象引入公共行为的时候,OOP则显得无能为力.也就是说,OOP允许你定义从上到下的关系,但并不适合定义

Spring学习之第一个AOP程序

IOC和AOP是Spring的两大基石,AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对组件(比如类)进行开发,然后对组件进行组合,OOP 最大问题就是无法解耦组件进行开发,比如我们上边举例,而 AOP 就是为了克服这个问题而出现的,它来进行这种耦合的分离.AOP 为开发者提供一种进行横切关注点(比如日志关注点)分离并织入的机制,把横切关注点分离,然后通过某种技术织入到系统中,从而无耦

Spring学习记录(十二)---AOP理解

Spring核心之二:AOP(Aspect Oriented Programming) --- 面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率. 专业术语: Joinpoint(连接点): 所谓连接点是指那些被拦截到的点.在spri

Spring学习【Spring概述】

从本文开始,我们就要一起学习Spring框架,首先不得不说Spring框架是一个优秀的开源框架.其中采用IoC原理实现的基于Java Beans的配置管理和AOP的思想都是很值得学习与使用的.下面我们就进入正题!介绍Java平台上的一个优秀的开源应用框架Spring,以及Spring框架的历史和Spring框架相关基本知识. [转载使用,请注明出处:http://blog.csdn.net/mahoking] Spring 介绍 Spring是Java平台上的一个开源应用框架.它的第一个版本是由

spring学习(三) ———— spring事务操作

前面一篇博文讲解了什么是AOP.学会了写AOP的实现,但是并没有实际运用起来,这一篇博文就算是对AOP技术应用的进阶把,重点是事务的处理. --wh 一.jdbcTemplate 什么是JdbcTemplate? spring提供用于操作数据库模版,类似Dbutils,通俗点讲,我们操作数据库,spring也会帮我们提供一个操作数据库的工具供我们使用,而不用我们自己手动编写连接数据库,获取结果集等等操作,这个工具就是JdbcTemplate.跟Dbutils一样,想要使用JdbcTemplate

spring学习9 Spring工作原理及其作用

1.springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作. 2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller. 3.DispatcherServlet请请求提交到目标Controller 4.Controller进行业务逻辑处理后,会返回一个ModelAndView 5.Dispathcher查询一个或多个ViewResolver视图解析器,找到Mo

Spring学习2—Spring容器

一.Spring容器接口关系 容器是Spring框架的核心,Spring容器就是一个巨大的工厂.Spring容器使用Ioc(控制反转(Inversion of Control )管理所有组成应用系统的组件. Spring容器会使用XML解析器读取改属性值,并利用反射来创建该实现类的实例. Spring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口.它们都可以代表Spring容器.Spring容

Spring 学习6 -Spring MVC-2 (Spring MVC讲解)

在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简化它的配置. 目录 MVC框架是什么Dispatcher Servlet(Spring控制器)Spring入门示例运行时依赖库web.xml和spring-servlet.xml文件配置请求控制器EmployeeController.java视图模型EmployeeVO.javaDao类业务层类视图

Spring学习笔记五: AOP入门

一.AOP术语 切面(aspect):要实现的交叉功能,是系统模块化的一个切面或领域.如日志记录. 连接点:应用程序执行过程中插入切面的地点,可以是方法调用,异常抛出,或者要修改的字段. 通知:切面的实际实现,他通知系统新的行为.如在日志通知包含了实 现日志功能的代码,如向日志文件写日志.通知在连接点插入到应用系统中. 切入点:定义了通知应该应用在哪些连接点,通知可以应用到AOP框架支持的任何连接点. 引入:为类添加新方法和属性. 目标对象:被通知的对象.既可以是你编写的类也可以是第三方类. 代

Spring学习(十三)aop技术理解与使用

一.什么是AOP? aop技术是面向切面编程思想,作为OOP的延续思想添加到企业开发中,用于弥补OOP开发过程中的缺陷而提出的编程思想.AOP底层也是面向对象:只不过面向的不是普通的Object对象,而是特殊的AOP对象.AOP的关注点是组成系统的非核心通用服务模块(比如登录检查等),相对于普通对象,aop不需要通过继承.方法调用的方式来提供功能,只需要在xml文件中以引用的方式,将非核心服务功能引用给需要改功能的核心业务逻辑对象或方法中.最终实现对象的解耦.spring 中ioc技术实现了核心