首页 > 代码库 > 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框架详解