spring 简介(一)
1、Spring的目标是什么?
Spring官方主页(http://spring.io)有两句话:
Let's build a better Enterprise.
我们共同来构建更好的企业应用。
Spring helps development teams everywhere build simple, portable, fast and flexible JVM-based systems and applications.
Spring帮助全世界的开发团队构建简单、便携、快速和灵活的基于JVM的系统和应用。
我们共同来构架更好的企业应用。Spring帮助全世界的而开发团队构建简单、便携、快速和灵活的基于JVM的系统和应用。这两句话已经足以说明Spring的目标,它针对的领域是企业应用,这套框架构建应用用着简单、便携、快速和灵活的特点。与EJB(Enterprise JavaBean,一个基于Java平台的服务端组件框架)相比,它是一个轻量级的应用开发平台。
2、认识Spring
Spring是一个企业级应用开发平台,到目前为止,围绕它有一盒较为完整切成熟的应用开发生态圈,在这个生态圈中,除了Spring核心项目以外,还有很多子项目。因此,理论上,他可以使用Spring的生态圈技术来开发一台完整的企业应用系统。
尽管JDK提供了丰富的开发功能,但是它很难将一些基础的组件块构建成一个完整的框架,它把这个任务交给了开发者和工程师。尽管开发人员可以利用工厂、抽象工厂、创建者、装饰器等设计模式将这些组件组合起来,但是其中的工作量是非常巨大的,特别是对于中小企业来说,根本没有那么多资源来做这件事情,而Spring框架已经帮我们做好了这一切,Spring框架的控制反转(IOC,Inversion of Control)组件以标准化的方式将这些分散的组件组合到一起,Spirng使用了规范的设计模式,很容易将它集成到应用系统中去。当然,大量的企业和机构在使用Spring框架。
3、Spring模块
如图上所示,Spring由20多个模块组成,他们可以分为核心容器(Core Container)、数据访问/集成(Data Access/Integration)、Web、面向切面编程(AOP)、设备(Instrumentation)、消息发送(Messaging)和测试(Test)。
3.1、核心容器
核心容器包含spring-core、spring-beans、spring-context、spring-context-support和spring-expression(Spring Expression Language,Spring 表达式语言)这些模块
spring-core和spring-beans构成了框架最基础的部分,包括控制反转和依赖注入功能,BeanFactory是工厂模式的一个很成熟的实现,
spring-context是基于spring-expression提供了一种强大的表达式语言,可以运行时查询和操作对象。
3.2 AOP和设备
spring-aop 模块提供了一个AOP面向切面编程是实现。比如,允许开发者定义方法连接器和切入点,以此来将业务逻辑和系统服务进行解耦。
spring-aspects模块提供与AspectJ的集成。
spring-instrument模块提供了在普通应用服务器中使用到的类设备支持和加载器的实现。spring-instrument-tomcat模块包含了Spring的tomcat设备代理
3.3 消息发送
spring4 包含了一个spring-messaging模块,他对Spring集成项目Message、MessageChannel和MessageHandler进行了重要的抽象,它是基于消息发送应用的基础。
3.4数据访问/集成
数据访问/集成层包含JDBC(spring-jdbc)、ORM(spring-orm)、OXM(spring-oxm)、JMS(spring-jms)和事务(spring-tx)模块。
3.5 Web
Web 层包含spring-web、spring-webmvc、spring-webSocket和spring-webmvc-portlet 模块。其中,spring-web提供了面向web集成得基本特性,比如文件上传功能。spring-wenmvc模块包含了spring的mvc和REST Web Service实现。Spring-webmvc-portlet模块提供了在Port环境下的MVC实现
3.6 测试
spring-test 模块支持Spring组件JUnit和TestNG的单元测试和集成测试
4、为何使用Spring
Spring的IOC和AOP两大核心功能可以大大降低应用系统的而和兴、简化开发流程。
Spring框架技术可在不同层次上起作用,比如IOC管理普通的POJO对象、AOP增强了系统服务和其它组件(事务、MVC、JDBC、ORM和远程调用等)。Spring的一大特点就是基于接口编程,它是非侵入式的服务。用户端绑定接口使用JAVAEE服务,而非直接绑定服务,而且应用也可以使用不同的服务(Hibernate、MyBatis等)。我们可以根据自己的需要,使用Spring的一部分服务,而不必使用完整的Spring系列项目