Spring框架是一个轻量级的企业级开发的一站式解决方案。所谓解决方案就是可以基于spring解决JAVAEE开发的所有问题。Spring框架主要提供了IOC容器、AOP、数据访问、WEB开发、消息、测试等相关技术的支持。

         Spring使用简单的POJO(Plainold java object,即无任何限制的普通java对象)来进行企业级开发。每一个spring管理的java对象都称之为bean;而spring提供了一个IOC容器用来初始化对象,解决对象间的依赖管理和对象的使用。

 

可参考的网站为:"https://spring.io/guides"和"https://docs.spring.io/spring/docs/"



1.spring的模块


wKioL1mpFWmQb0XIAACYUzSkVmY090.png



(1)核心容器(core container)

Spring-core:核心工具类,spring其他模块大量使用spring-core

Spring-beans:spring定义bean的支持;

Spring-context:运行时spring容器;

Spring-context-support:spring容器对第三方包的集成支持;

Spring-expression:使用表达式语言在运行时查询和操作对象。

 

(2)AOP

Spring-AOP:基于代理的AOP支持;

Spring-aspects:基于aspectJAOP支持。

 

(3)消息(Messaging)

Spring-messaging:对消息架构和协议的支持。

 

(4)WEB

Spring-web:提供基础的WEB集成的功能,在WEB项目中提供spring的容器;

Spring-webmvc:提供基于servletspring MVC

Spring-websocket:提供websocket功能;

Spring-webmvc-portlet:提供portlet环境支持。

 

(5)数据访问/集成(dataaccess/integration)

Spring-jdbc:提供以JDBC访问数据库的支持;

Spring-TX:提供编程式和声明式的事物支持;

Spring-ORM:提供对对象/关系映射技术的支持;

Spring-OXM:提供对对象/XML映射技术的支持;

Spring-JMS:提供对JMS的支持。

 

 

2.Spring的生态

 

         Spring发展到现在已经不仅仅是spring框架本身的内容,spring目前提供了大量的基于spring的项目,可以用来更深入地降低我们的开发难度,提供开发效率。

         目前spring的生态里主要有以下项目:

Spring boot:使用默认开发配置来实现快速开发;

Spring XD:用来简化大数据应用开发;

Spring cloud:为分布式系统开发提供工具集;

Spring data:对主流的关系型和nosql数据库的支持;

Spring integration:通过消息机制对企业集成模式(EIP)的支持;

Spring batch:简化及优化大量数据的批处理操作;

Spring security:通过认证和授权保护应用;

Spring HATEOAS:基于HATEOAS原则简化REST服务开发;

//HATEOAS可参考: http://blog.youkuaiyun.com/jackyrongvip/article/details/9218817

Spring social:与社交网络API(Facebook、新浪微博等)的集成;

Spring AMQP:对基于AMQP的消息的支持;

Spring mobile:提供对手机设备检测的功能,给不同的设备返回不同的页面的支持;

Spring for Android:主要提供在Android上消费restfulapi的功能;

Spring web flow:基于spring MVC提供基于向导流程式的WEB应用开发;

Spring web services:提供了基于协议有限的SOAP/WEB服务;

Spring LDAP:简化使用LDAP开发;

Spring session:提供一个API及实现来管理用户会话信息。