Spring是一个开源框架,由Rod Johnson创建。是为简化企业级应用开发应运而生的。使用Spring,你可以用简单的JavaBeans来实现那些以前只有EJB才能实现的功能。不只是服务端开发能从中受益,任何Java应用开发都能从Spring的简单、可测试和松耦合特征中得到好处。
轻量级——从大小和应用开支上说Spring都算是轻量级的。整个Spring框架可以打成一个2.5MB多一点的JAR包,并且Spring的处理开支也非常小。更重要的是,Spring是非侵入式的:基于Spring开发的应用中的对象一般不依赖于Spring的类。
依赖注入——Spring提供了一种松耦合的技术,称为依赖注入(DI)。使用DI,对象是被动接收依赖类而不是自己主动去找。你可以将DI理解为JNDI的反转——对象不是从容器中查找它的依赖类,而是容器在实例化对象的时候主动将它的依赖类注入给它。
面向切面——Spring对面向切面编程提供了强大支持,通过将业务逻辑从应用服务(如监控和事务管理)中分离出来,实现了内聚开发。应用对象只做它们该做的——业务逻辑,它们不负责(或关心)其系统问题(如日志和事务支持)。
容器——Spring是一个容器,因为它包含并且管理应用对象的生命周期和配置。你可以通过配置来设定你的Bean是单一实例,还是每次请求产生一个实例,并且设定它们之间的关联关系。Spring有别于传统的重量级EJB容器,这些容器通常很大,很笨重。
框架——Spring实现了使用简单的组件配置组合成一个复杂的应用。在Spring中,应用中的对象是通过XML文件配置组合起来的。并且Spring提供了很多基础功能(事务管理,持久层集成等),这使开发人员能够专注于开发应用逻辑。