spring源码学习之:springAOP实现底层原理

一:springAOP底层实现是基于动态代理实现的。增强和切面,以及通知。是在动态代理生成的代理类inoke方法中调用实现

 1 //+++++++++++++aop动态代理+++++++++++++++++++++++
 2
 3
 4         /**
 5          * 通知,表示增强。在某些方法调用前,调用后,抛出异常后,对方法的增强。(是一个具体实现类,类中的方法实现了增强)
 6          */
 7         //方法执行前通知
 8         BeforeAdvice beforeAdvice ;
 9         MethodBeforeAdvice MethdBeforeAdvice;
10         //方法执行后通知
11         AfterAdvice afterAdvice;
12         AfterReturningAdvice afterReturningAdvice;
13         //抛出异常的通知
14         ThrowsAdvice throwsAdvice;
15         ThrowsAdviceInterceptor throwsAdviceInterceptor;
16
17
18         /**
19          * 切点(表示那些方法被标记,被动态代理,是一个集合)
20          */
21         Pointcut pointcut;
22         org.springframework.aop.Pointcut pointcut2;
23         JdkRegexpMethodPointcut jdkRegexpMethodPointcut;
24
25         //jdk动态代理的实现类
26         //JdkDynamicAopProxy JdkDynamicAopProxy;
27
28         /**
29          * 通知器(将切点和通知器结合起来的实现)
30          */
31         Advisor advisor;
32         DefaultPointcutAdvisor defaultPointcutAdvisor;
33
34         /**
35          * aop实现的例子
36          */
37         ProxyFactoryBean proxyFactoryBean;
38         org.springframework.http.client.support.ProxyFactoryBean proxyFactoryBean2;

View Code

 

时间: 2024-10-12 08:13:57

spring源码学习之:springAOP实现底层原理的相关文章

Spring源码学习之:FactoryBean的使用

转载:http://book.51cto.com/art/201311/419081.htm ==========个人理解========================= FactoryBean和BeanFactory的关系[1]FactoryBean:是一个接口,是一个用户自定义实现类实现该接口的A类.当ioc容器初始化完成后.BeanFactory(ioc容器)调用getBean("beanname")的时候,返回的bean不是A类对应的实例,而是A类getObject()方法返

spring源码学习之:spring容器的applicationContext启动过程

 Spring 容器像一台构造精妙的机器,我们通过配置文件向机器传达控制信息,机器就能够按照设定的模式进行工作.如果我们将Spring容器比喻为一辆汽车,可以将 BeanFactory看成汽车的发动机,而ApplicationContext则是 整辆汽车,它不但包括发动机,还包括离合器.变速器以及底盘.车身.电气设备等其他组件.在ApplicationContext内,各个组件按部就班. 有条不紊地完成汽车的各项功能. ApplicationContext内部封装 了一个BeanFactory对

Spring源码学习之:spring注解@Transactional

在分析深入分析@Transactional的使用之前,我们先回顾一下事务的一些基本内容. 事务的基本概念 先来回顾一下事务的基本概念和特性.数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行.事务,就必须具备ACID特性,即原子性(Atomicity).一致性(Consistency).隔离性(Isolation)和持久性(Durability). 编程式事务与声明式事务 Spring 与Hibernate的整合实

【spring源码学习】spring的远程调用实现源码分析

[一]spring的远程调用提供的基础类 (1)org.springframework.remoting.support.RemotingSupport ===>spring提供实现的远程调用客户端实现的基础类 ===>例子:org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean org.springframework.remoting.caucho.HessianProxyFactoryBean (2)org.

【spring源码学习】spring的IOC容器之自定义xml配置标签扩展namspaceHandler向IOC容器中注册bean

[spring以及第三方jar的案例]在spring中的aop相关配置的标签,线程池相关配置的标签,都是基于该种方式实现的.包括dubbo的配置标签都是基于该方式实现的.[一]原理 ===>spring在解析xml标签,一旦不是以<bean>开头的元素,就会走org.springframework.beans.factory.xml.BeanDefinitionParserDelegate的parseCustomElement(Element ele)方法解析自定义的标签 ===>

【spring源码学习】spring的AOP面向切面编程的实现解析

一:Advice(通知)(1)定义在连接点做什么,为切面增强提供织入接口.在spring aop中主要描述围绕方法调用而注入的切面行为.(2)spring定义了几个时刻织入增强行为的接口  =>org.springframework.aop.BeforeAdvice   org.springframework.aop.MethodBeforeAdvice  =>org.springframework.aop.AfterAdvice   org.springframework.aop.After

【spring源码学习】springMVC之映射,拦截器解析,请求数据注入解析,DispatcherServlet执行过程

[一]springMVC之url和bean映射原理和源码解析 映射基本过程 (1)springMVC配置映射,需要在xml配置文件中配置<mvc:annotation-driven >  </mvc:annotation-driven> (2)配置后,该配置将会交由org.springframework.web.servlet.config.MvcNamespaceHandler处理,该类会转交给org.springframework.web.servlet.config.Anno

Spring源码学习之:ClassLoader学习(4)

转载:http://www.codeceo.com/article/java-classloader.html 一:什么是ClassLoader? ===>大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在 运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另 外一个class文件中的方法,如果另外一个文件不存在

【spring源码学习】spring集成orm数据框架

[一]简易的数据源配置 (1)配置文件 <!--springJdbcTemplemate数据操作配置信息 --> <bean id="driver" class="com.mysql.jdbc.Driver"></bean> <bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSourc