Spring是一个J2EE框架,提供了IoC和AOP的封装,各个模块可以独立运行。
Spring框架共分7个部分:SpringCore、SpringContext、SpringWeb、SpringWeb MVC、SpringDAO、SpringORM、SpringAOP。
SpringCore:是Spring框架的核心容器,最重要组件BeanFactory使用工厂模式创建所需的对象。同时BeanFactory使用IOC通过XML文件来实例化对象。因而BeanFactory提供了生命周期管理、组件的创建/装配/销毁功能。
SpringContext:提供Spring上下文,包括国际化、Email、JNDI访问等。
SpringWeb:提供Servlet监听Context和Web应用的上下文,同时集成了Struts框架。
SpringWeb MVC:Web应用程序的MVC实现。
SpringDAO:提供数据访问对象模式和JDBC支持。实现了业务逻辑和数据库访问的解耦。
SpringORM:提供ORM框架的支持,如Hibernate、JDO。
SpringAOP:支持面向切面编程的AOP。同时提供事务管理,使之不依赖具体的EJB组件。
Spring即可以用来管理Servlet,又可以管量数据库访问的Hibernate。Spring管理业务对和DAO都使用了IOC和AOP的思想,因而可以脱离EJB进行独立测试。
Spring的优点是:
1) 编写业务对象不需要Spring,代码无侵入。
2) 面向接口编程而非面向类编程,程序具有更好的可扩展性。
3) 采用IOC和AOP,程序易于测试。
4) 方便数据库存取,无论是JDBC、Hibernate、JDO。
5) 对事务管理提供很好的支持。