首页 > 代码库 > spring框架详解

spring框架详解

把之前分享的spring框架整理一份放在这里。

整体架构:

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架

框架图(选自:http://docs.spring.io/spring/docs/3.0.x/reference/overview.html):

 

core Container为spring的核心,实现了基于IoC的bean管理容器。上层的aop /Aspects都是基于他基础上实现的AOP。他们构成了spring的核心功能。

在IoC和AOP基础上,我们有扩展了数据层和web层

 

使用场景:

web应用使用场景:(springmvc + spring)

 

rpc应用使用场景:

 

IoC定义:

 应用控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用,传递给它。也可以说,依赖被注入到对象中。所以,控制反转是,关于一个对象如何获取他所依赖的对象的引用,这个责任的反转。

 

IoC容器框架的类关系:

 

 

beanFactory 和 applicationContext的比较,applicationContext支持的功能更多:

applicationContext支持不同的信息源:ApplicationContext扩展了MessageSource接口,可以支持国际化的实现。

访问资源:ApplicationContext继承了DefaultResourceLoader的子类,提供ResourceLoader和Resource的支持

支持应用事件:ApplicationContext继承了ApplicationEventPublisher接口

 

applicationContext启动流程(AbstractApplicationContext):

ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();// Invoke factory processors registered as beans in the context.invokeBeanFactoryPostProcessors(beanFactory);// Register bean processors that intercept bean creation.registerBeanPostProcessors(beanFactory);// Instantiate all remaining (non-lazy-init) singletons.finishBeanFactoryInitialization(beanFactory);

  

bean介绍:

按照注入bean的种类分类:

分为 普通bean和 FactoryBean

factoryBean 需要实现FactoryBean接口,应用于一个bean作为工厂方法产生不同的bean实例,常用于应用层框架的搭建,可以根据特定条件返回接口的不同实现

 

public interface FactoryBean<T> {    T getObject() throws Exception;        Class<?> getObjectType();    boolean isSingleton();}

 

bean的资源定义如何载入到容器:

xmlBeanFactory:

 

applicationContext

 

编程式获取bean的方法

Web应用程序bean实例化的配置

 

bean的注册:

 

如何自定义bean标签

 

BeanFactoryPostProcessor

 

获取bean的流程:

 

bean的生命周期

 

生命周期中的扩展

 

spring在web中如何启动

 

bean的注解

 

注解实现举例

 

问题互动:

Bean 的循环依赖会报错吗

如何扩展一个bean的定义标签

Web applicationContext什么时候实例化 bean

 

AOP定义

面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。

 

应用模式

 

实现原理

 

webx介绍

 

spring框架详解