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的模块
(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:基于aspectJ的AOP支持。
(3)消息(Messaging)
Spring-messaging:对消息架构和协议的支持。
(4)WEB
Spring-web:提供基础的WEB集成的功能,在WEB项目中提供spring的容器;
Spring-webmvc:提供基于servlet的spring 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.csdn.net/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及实现来管理用户会话信息。