1. 设计理念
Spring为开发者提供一站式的轻量级应用开发框架
在Java EE的应用开发中,支持POJO和使用JavaBean的开发方式,使应用面向接口开发,充分支持OO的设计方法
从设计上,Spring分为核心,组件和应用三个基本的层次
核心:Spring的核心即IOC容器和AOP模块,通过IOC来管理POJO对象,以及他们之间的松耦合关系;AOP以非侵入式的方法来增强服务(符合开闭原则)
组件:
在IOC和AOP两大核心模块的支持下,可以依据IOC和AOP约定好的模式,即可动态的扩展许多即开即用的系统组件和服务,比如事务处理,Web MVC,JDBC等
这部分组件提供了许多Java EE服务抽象,更体现了面向接口开发的设计理念
2. 整体架构
Spring IOC
包含了最基本的IOC容器和BeanFactory接口的与实现,比如XmlBeanFactory
除此之外还包含让应用方便使用IOC的支持,比如Resource访问资源的抽象和定位等
Spring AOP
围绕着AOP的增强功能,Spring集成了AspectJ作为AOP的一个特定实现,同时还在JVM动态代理/CGLIB的基础上实现了一个AOP框作为Spring集成其他模块的工具,比如声明式事务的TransactionPoxyFactoryBean;
Spring MVC
Spring MVC
Spring JDBC/ORM
Spring层面在JDBC规范的基础上进行了一层封装(JdbcTemplate)简化数据库的操作;
还提供了对ORM工具的封装,让应该更方便的使用ORM框架
Spring 事务处理
Spring把企业开发中事务处理的主要过程抽象出来,并且简洁的使用AOP增强实现了声明式事务;
这些事务的处理的基本过程和具体事务处理器的实现是无关的,这里又一次体现了面向接口开发的设计理念;对于不同的事务处理机制(JDBC,Hibernate,JTA)有对应的事务处理器(DataSourceTransactionManager,HibernateTransactionManager,JtaTransactionManager)进行封装
Spring的远端调用
屏蔽了通讯的具体底层实现