?上下文在web容器中的启动
1,IoC容器的启动过程
IoC的启动过程就是建立上下文的过程,该上下文是与ServletContext相伴。在Spring中存在一个核心控制分发器,DispatcherServlet,这是Spring的核心。在web容器启动Spring应用程序时,首先建立根上下文,然后ContextLoader建立WebApplicationContext。
...
分类:
编程语言 时间:
2015-07-12 19:02:36
阅读次数:
195
7、Advice通知的实现
AopProxy代理对象生成时,其拦截器也一并生成。下面我们来分析下Aop是如何对目标对象进行增强的。在为AopProxy配置拦截器的实现中,有一个取得拦截器配置过程,这个过程由DefaultAvisorChainFactory实现的,而这个工厂类负责生成拦截器链,在它的getInterceptorsAndDynamicInterceptionA-
dvice方法中,...
分类:
编程语言 时间:
2015-07-06 23:30:57
阅读次数:
258
简介
1,在Spring中,SpringIoC提供了一个基本的JavaBean容器,通过IoC模式管理依赖关系,并通过依赖注入和AOP切面增强了为JavaBean这样子的POJO提供事务管理,生命周期管理等功能。
2,Spring IoC的设计中,主要包含两个主要的容器系列:
-1,BeanFactory系列,该序列实现了容器的基本功能。
-2,ApplicationCon...
分类:
编程语言 时间:
2015-07-05 15:02:21
阅读次数:
146
4、目标方法的调用
如果没有拦截器会对目标对象方法直接调用。对于JDKDynamicAopProxy代理对象是通过AopUtils使用反射机制实现的。在这个调用方法中首先得到调用方法的反射对象,然后使用invoke启动对方法反射对象的调用。源码如下: /**
* Invoke the given target via reflection, as part of an AOP me...
分类:
编程语言 时间:
2015-07-05 11:10:32
阅读次数:
1001
1,Spring的主要子项目:
-1,Spring Framework(Core):Spring项目的核心。提供IoC,AOP,MVC等核心功能。
-2,Spring Web Flow:工作流引擎。
-3,Spring BlazeDs Integration:Spring提供的与Flex通讯模块。
-4,Spring Security:Sprin...
分类:
编程语言 时间:
2015-06-28 14:14:03
阅读次数:
145
生成SingleTon代理对象在getSingleTonInstance方法中完成,这个方法时ProxyFactoryBean生成AopProxy对象的入口。代理对象会封装对target目标对象的调用,也就是说针对target对象的方法调用行为会被这里生成的代理对象所拦截。具体的生成过程是首先读取ProxyFactoryBean配置,为生成代理对象做好准备。Spring通过AopProxy类来具体生...
分类:
编程语言 时间:
2015-06-27 18:28:01
阅读次数:
178
**二、AOP的设计与实现
1、JVM的动态代理特性**
在Spring AOP实现中, 使用的核心技术时动态代理,而这种动态代理实际上是JDK的一个特性。通过JDK的动态代理特性,可以为任意Java对象创建代理对象,对于具体使用来说,这个特性使通过Java Reflection API来完成的。在此之前先简要复习一下Proxy模式,其静态类图如下:
我们可以看到有一个RealSubjec...
分类:
编程语言 时间:
2015-06-25 09:05:47
阅读次数:
250
一、SpringAOP的概述
1、AOP概念
AOP是Aspect-Oriented Programming(面向切面编程)的简称。维基百科的解释如下:
Aspect是一种新的模块化机制,用来描述分散在对象、类或函数中的横切关注点(crosscutting concern)。从关注点中分离出横切关注点是面向切面的程序设计的核心。分离关注点使解决特定领域问题的代码从业务逻辑代码中独立出来,业务逻...
分类:
编程语言 时间:
2015-06-23 17:59:28
阅读次数:
127
前一段时候我把Spring技术内幕的关于IOC原理一章看完,感觉代码太多,不好掌握,我特意又各方搜集了一些关于IOC原理的资料,特加深一下印象,以便真正掌握IOC的原理。
IOC的思想是:Spring容器来实现这些相互依赖对象的创建、协调工作。对象只需要关系业务逻辑本身就可以了。
SpringIOC容器的执行步骤是:
1、资源定位,即首先要找到applicationContext.xml文件...
分类:
编程语言 时间:
2015-06-23 12:00:17
阅读次数:
125
这里通过使用BeanDefinitionResolver来对BeanDefinition进行解析,然后注入到property中。下面到BeanDefinitionValueResolver中看一下解析过程,以对Bean reference进行解析为例 /**
* Resolve a reference to another bean in the factory.
* cl...
分类:
编程语言 时间:
2015-06-19 13:37:51
阅读次数:
162