Spring框架是一個輕量級的企業級開發的一站式解決方案。所謂解決方案就是能夠基於spring解決JAVAEE開發的全部問題。Spring框架主要提供了IOC容器、AOP、數據訪問、WEB開發、消息、測試等相關技術的支持。java
Spring使用簡單的POJO(Plainold java object,即無任何限制的普通java對象)來進行企業級開發。每個spring管理的java對象都稱之爲bean;而spring提供了一個IOC容器用來初始化對象,解決對象間的依賴管理和對象的使用。web
可參考的網站爲:"https://spring.io/guides"和"https://docs.spring.io/spring/docs/"spring
1.spring的模塊sql
(1)核心容器(core container)數據庫
Spring-core:核心工具類,spring其餘模塊大量使用spring-core;express
Spring-beans:spring定義bean的支持;編程
Spring-context:運行時spring容器;api
Spring-context-support:spring容器對第三方包的集成支持;websocket
Spring-expression:使用表達式語言在運行時查詢和操做對象。restful
(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及實現來管理用戶會話信息。