读书人

Spring揭底

发布时间: 2012-09-06 10:37:01 作者: rapoo

Spring揭秘

?

Spring两种容器类型:BeanFactory和ApplicationContext;BeanFactory启动速度快,所需资源少

?

BeanFactory(ListableBeanFactory,HierarchicalBeanFacotry)

ApplicationContext(ListableBeanFactory,HierarchicalBeanFacotry,ApplicationEventPublisher

,ResourcePatternResolver,MessageSource)

?

bean的scope类型:singleton和prototype;singleton同一个容器只存在一个共享实例,prototype每一个对象都会创建实例

?

容器功能实现的各个阶段:启动阶段(加载配置,分析配置信息,装配到BeanDefinition和其他后处理)和Bean实例化阶段(实例化对象,装配依赖,生命周期回调,对象其他处理,注册回调接口);

?

Bean实例化的过程:实例化Bean对象,设置对象属性,检查Aware相关接口并设置相关依赖,BeanPostProcessor前置处理,检查是否是InitializingBean以决定是否调用afterPropertiesSet方法,检查是否配置有自定义的init-method,BeanPostProcessor后置处理,注册必要的Destruction相关回调接口,使用中,是否实现DisposableBean接口,是否配置有定义的destroy方法

?

?

Spring提出了一套基于Resource和ResourceLoader的资源抽象和加载策略,ApplicationContext就是对此的支持

?

?

aop起初是针对像日志,安全等问题系统需求中横切的关注点

Aspect最终是一Class的身份与系统结合的

Joinpoint,Pointcut,Advice,Aspect

Java的异常类(java.lang.Throwable(java.lang.Error;java.lang.Exception(java.lang.RuntimeException,NotRuntimeException)))


读书人网 >软件架构设计

热点推荐