这张图信息颇有限, 只是描述了下spring 框架的modules, java
官方描述
Core 和 Beans 两个模块 提供了框架的基本支持, 主要包含了 IOC (控制反转) 和 DI (依赖注入) 特性, BeanFacotry 做为工厂模式的超级接口, 耦合低 spring
总而言之: core 和 beans 主要控制了Object 的构成, 不管是自身仍是依赖, 一切都是以此为基础的。 架构
Context 模块 在 core 和 beans 两个模块基础之上构建, 继承了beans模块特性, 而且添加了国际化支持,事件传播,资源加载, 开发式的上下文构建, 还支持 J2EE 特性,如EJB,JMX,还有基本的远程调用, 超级接口 ApplicationContext
Expression Language 表达式支持, 这个主要就是用来支持一些spring XML 配置文件表达式 和 注解中一些表达式解析,让配置有动态特性 app
系统最基础模块就是core 和 beans,因而可知控制一个bean的构成对于一个容器框架的总要性,至于context
应用对象的载体 框架
其实从整体来看的话一切就变的有条理,细节再深刻
由spring的版原本看一些问题, 大概在spring2.5 以前spring都是以单独模块发布的 (具体不明确), 直接一个spring.jar,可是在spring2.5 以后spring更加详细的划分为以上的moduels发布,由此对于JAR包的分割也值得咱们更加的细化了解框架结构, 仍是值得思考和学习的 分布式
在我看来就是功能更加细化, 各个部分的依赖关系明确,为spring的良好的结构和扩展打下坚实的基础 工具
整体来讲,spring core 主要仍是负责环境配置信息,资源访问,type的元数据 很少 可是体现了这些在框架中的的重要性 学习
public class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWrapper
SPRING BEAN 有那些? 生命周期
InitializingBean,DisposableBean 生产和销毁
#JSR-250 @PostConstruct @PreDestroy 分别对应着 InitializingBean afterPropertiesSet 和 DisposableBean destroy 两个方法
FactoryBean 通过加工修饰的BEAN / 一个BEAN 两个对象能够切换引用 具体使用查看相关文档 spa
==================================
事件扩展点, 事件自己能为项目带来解耦, 或者可让业务划分为主业务和旁支业务, 保证最终一致性便可 若是是在分布式的环境中还能够和消息驱动结合起来 设计
ApplicationEvent (定义) , ApplicationEventPublisherAware(发布) ,ApplicationListener (监听) ================================== 容器中BEAN 的建立的拦截处理 BeanPostProcessor , InitializingBean ================================== Factory 构建拦截 BeanFactoryPostProcessor ================================== I18N 支持 MessageSource