应该使用过Spring的人都被问题过这个问题, What is Spring?(当然不能回答春天了,呵呵)
其实在Spring官方网站就是具体的介绍,下面本人对其译成了中文.如有翻译不当之处,敬请各位指正。
Spring 是一个基于Java/JavaEE的应用开发平台。其实现是由作者Rod Johnson在2002年出版《Expert One-on-One J2EE Design and Development》一书后,总结经验后,研发而成。
Spring的核心内容包括:
1. 最轻量级的容器,提供集中式,自动配置与装配应用业务对象功能。
Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用POJO对象管理的Inversion of Control(控制反转)容器,提供非侵入的方式为当前一些复杂的系统应用提供松耦合,一致性的业务对象配置管理。容器以快捷开发为出发点,方便开发中的可测试性和部署时的可扩展性为目的。实现只针对单个业务组件在独立环境的下进行开发与测试,在部署时再集成到任意的JavaSE或JavaEE环境中。
2.提供了唯一的事务管理抽象,基于插件式的事务管理(声明性事务管理)能够很容易的实现事务层管理,而无需了解各种底层事务实现,例如JTA或者JDBC事务提供一个一致的编程模型。相对于只依赖JavaEE环境的普通的JTA或EJB CMT方式, Spring就更简单轻便了。
3. 提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率(大大减少了开发的代码量)并且减少了可能的错误。基于JDBC的异常信息也是完全遵循Spring的公共DAO异常层级。
4. Spring的数据访问层集成了Toplink, Hibernate, JDO, and iBATIS SQL Maps等 O/R mapping解决方案,其目的是提供统一的DAO支持类实现和事务管理策略。尤其Hibernate对SpringIOC特性的支持,能更好的实现集成,以更好的利用Spring的公共事务与DAO异常层级。
5. Spring提供了一个用标准Java编写的AOP框架(也能集成AspectJ),提供基于POJOs的声明式的事务管理和其他企业事务--如果你需要还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。当然也可以选择不支持JTA方式的开发,尤其如不支持JTA的Tomcat服务器下开发单数据库应用。
6. 提供可以与IoC容器集成的强大而灵活的MVC Web框架. 其本身通过提供策略接口与多视图支持技术(如JSP, Velocity模块引擎, Tiles, iText和POI)实现框架的高可配置性。 Spring作为中间层也可以很容易的与其它第三方web MVC框架实现集成,如Struts,WebWork,Struct2(Struts与WebWork的集成)和Tapertry.
Good Luck!
Yours Matthew!