Spring全家桶Spring

Spring详解1.概述

2018-12-17  本文已影响9人  卢卡斯哔哔哔

点击进入我的博客

1.1 Spring是什么

Spring是由Rod Johnson缔造的一个分层的Java SE/EE应用一站式的轻量级开源框架,以IoC(Inverse of Control,反转控制)和AOP(Aspect Oriented Programming,面向切面编程)为内核,提供了展现层Spring MVC、持久层Spring JDBC及业务层事务管理等一站式的企业级应用技术。

1.2 Spring的优点

1.3 Spring体系结构

Spring框架按照所属功能可以划分为5个主要模块,如下所示:


Spring框架结构
IOC

Spring的核心模块实现了IoC的功能,它将类和类之间的依赖从代码中脱离出来,用配置的方式进行依赖关系描述,由IoC容器负责类的创建,管理,获取等工作。

AOP

Spring提供了满足AOP Alliance规范的实现,还整合了AspectJ这种语言级的框架。Java 5.0引入了java.lang.instrument,允许在JVM启动时启用一个代理类,通过该代理类在运行期修改类的字节码,改变一个类的功能,从而实现AOP的功能。

数据访问和集成
Web及远程操作
测试框架

Spring可以用非容器依赖的编程方式进行几乎所有的测试工作,支持JUnit和TestNG等测试框架。

1.4 Spring4.0的新特性

  1. 完全支持Java 8
  2. 核心容器的增强:支持范型依赖注入;对CgLib类代理不要求必须有空参构造器;提供了@Description、@Conditional、@Lazy、@Order等新的注解
  3. 支持用Groovy定义Bean
  4. Web的增强:开始基于Servlet 3.0;为了方便REST开发,引入了@RestController控制器注解;添加了一个AsyncRestTemplate支持Rest客户端的异步无阻塞请求。
  5. 支持WebSocket
  6. 测试的增强:Spring-test模块里的所有注解都可以用作meta-annotation,这样就可以自定义组合注解来减少测试时的重复配置;提供了@Sql注解支持多数据源的测试。
  7. 提供了对JCache注解的支持,并对Cache抽象部分进行了增强。
  8. 添加了动态语言支持,对动态脚本语言计算表达式进行了抽象封装。
  9. 添加了多线程并发处理支持
  10. 增强了持久化处理

1.5 Spring的子项目

  1. Spring IO Platform : Spring IO是可集成的、构建现代化应用的版本平台。Spring IO是模块化的、企业级的分布式系统,包括一系列依赖,是的开发者仅能对自己所需的部分进行完全的部署控制。
  2. Spring Boot:Spring应用快速开发工具,用来简化Spring应用开发过程。
  3. Spring XD:Spring XD(eXtreme Date,极限数据)是Pivotal的大数据产品。它结合了Spring Boot和Grails,组成Spring IO平台的执行部分。
  4. Spring Data:Spring Data是为了简化构建基于Spring框架应用的数据访问实现,包括非关系数据库、Map-Reduce框架、云数据服务等;另外,也包含对关系数据库的访问支持。
  5. Spring Integration:Spring Integration为企业数据集成提供了各种适配器,可以通过这些适配器来转换各种消息格式,并帮助Spring应用完成与企业应用系统的集成。
  6. Spring Batch:Spring Batch是一个轻量级的完整批处理框架,皆在帮助应用开发者构建一个健壮、高效的企业级批处理应用(这些应用的特点是不需要与用户交互,重复的操作量大,对于大容量的批量数据处理而言,这些操作往往要求较高的可靠性)
  7. Spring Security:Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文配置的bean,充分利用Ioc和AOP功能,为应用系统提供声明式的安全访问控制功能。
  8. Spring Hateoas:Spring Hateoas是一个用户支持实现超文本驱动的REST Web服务的开发库,是Hateoas的实现。Hateoas(Hypermedia as the engine of application state)是REST架构风格中最复杂的约束,也是构建成熟REST服务的核心。它的重要性在于打破了客户端和服务器之间严格的契约,是的客户端可以更加智能和自适应。
  9. Spring Social:Spring Social是Spring框架的扩展,用来方便开发Web社交应用程序,可通过该项目来创建与各种社交网站的交互,如Facebook,LinkedIn、Twitter等。
  10. Spring AMQP:Spring AMQP是基于Spring框架的AMQP消息解决方案,提供模版化的发送和接收消息的抽象层,提供基于消息驱动的POJO。这个项目支持Java和.NET连个版本。Spring Source旗下的Rabbit MQ就是一个开源的基于AMQP的消息服务器。
  11. Spring for Android:Spring for Android为Android终端开发应用提供Spring的支持,它提供了一个在Android应用环境中工作、基于Java的REST客户端。
  12. Spring Mobile:Spring Mobile是基于Spring MVC构建的,为移动端的服务器应用开发提供支持。
  13. Spring Web Flow:Spring Web Flow(SWF)一个建立在Spring MVC基础上的Web页面流引擎。
  14. Spring Web Service:Spring Web Service是基于Spring框架的Web服务框架,主要侧重于基于文档驱动的Web服务,提供SOAP服务开发,允许通过多种方式创建Web服务。
  15. Spring LDAP:Spring LDAP是一个用户操作LDAP的Java框架,类似Spring JDBC提供了JdbcTemplate方式来操作数据库。这个框架提供了一个LdapTemplate操作模版,可帮助开发人员简化looking up、closing contexts、encoding/decoding、filters等操作。
  16. Spring Session: Spring Session致力于提供一个公共基础设施会话,支持从任意环境中访问一个会话,在Web环境下支持独立于容器的集群会话,支持可插拔策略来确定Session ID,WebSocket活跃的时候可以简单地保持HttpSession。
  17. Spring Shell: Spring Shell提供交互式的Shell,用户可以简单的基于Spring的编程模型来开发命令。

1.5 Spring相关资料

Spring 官方文档
Spring 参考文档
Spring 项目地址
Spring Boot 项目地址
Spring Boot 参考文档
Spring Cloud 参考文档
Spring maven仓库

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.3.21.RELEASE</version>
</dependency>
上一篇下一篇

猜你喜欢

热点阅读