Spring概述

Spring 概述

为什么会诞生Spring Framework?

  1. 1998 年Sun 公司发表JDK 1.2 ,分别发表标准版-J2SE、企业版-J2EE、微型版-J2ME。在次 J2EE 诞生。
  2. 2005 年Java One 大会上Sun 公布了JDK 1.6,J2XX 全部改名为JavaXX,J2EE 改名为JavaEE。
  3. Java EE 是一个技术体系的统称,其中EJB 是J2EE 规范的核心内容。EJB 提供了一种组件模式,使得开发人员可以仅关注系统业务方面的开发,而忽略中间件需求。

可是EJB存在一些严重的问题:

  • 业务类需要与EJB 框架紧耦合。
  • RMI 带来不必要的性能开销。
  • 部署时需要些冗长的XML部署描述符。
  • 难以在容器之外进行单元测试。
  • EJB 编程模型将开发人员引向了面向过程程序设计风格。
  • 基于以上问题,POJO编程模型发展了起来,而Spring Framework则是基于POJO 编程模型产生的框架

Spring 的特点

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架

  • 轻量:完整的Spring框架可以在一个大小只有1MB的Jar文件里面发布,并且Spring所需的处理开销也是微不足道的,此外,Spring是非侵入式的、典型的,Spring应用中的对象不依赖于Spring的特定类。
  • 控制反转:Spring通过一中称作为控制反转的 技术促进了松耦合。
  • 面向切面:Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计和事务)进行内聚性的开发。
  • 容器:Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建(基于一个可配置原型),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例,以及它们是如何关联的。
  • 框架:Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型的是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架 集成等等),将应用逻辑 的开发留给了你。

Spring 的组成

Spring框架有七个模块组成,这七个模块均可以单独使用,也可以与其他一个或多个模块联合使用。

  • Spring核心容器(Core): 提供了Spring框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转模式将应用程序的配置和依赖性规范与实际的应用代码程序分开。
  • Spring AOP: 通过配置管理特性,Spring AOP模型直接面向切面的编程功能集成到了Spring框架中,所以可以很容易的使Spring框架管理的任何对象支持AOP。Spring AOP模块为基于Spring的应用程序 中的对象提供了事务管理服务。通过使用Spring AOP,不用依赖于EJB组件,就可以将声明性事务管理集成到应用程序中。
  • Spring ORM: Spring框架集成了若干ORM框架,提供了ORM的对象关系工具,包括JDO、Hibernate、iBatis和TopLinko,所有这些都遵从Spring的通用事务和Dao异常层结构。
  • Spring Dao: JDBC DAO抽象层提供了有意义的异常层次的结构,可用该结构来管理异常处理和不同数据供应商抛出的异常错误信息。异常层次结构简化了错误处理,并且大大的降低了需要编写的异常代码数量(打开和关闭连接)。Spring DAO的面向JDBC的一场遵从通用的DAO异常层结构。
  • Spring WEB: Web上下文模块在上下文模块(Context)的基础之上,为基于Web服务的应用程序提供了上下文的服务。所以Spring框架支持Jakarta Struts的继承。Web模块还简化了处理多部分请求及将请求绑定到域对象的工作。
  • Spring Context: Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,如 JNDI、EJB、电子邮件、国际化校验和调度功能。
  • Spring MVC: Spring的MVC框架是一个全功能的构建Web应用的MVC实现。通过策略接口,MVC框架变成为高度可配置的,MVC容纳的大量视图技术,包括 JSP、Velocity、Tiles、iText和Pol。

Spring的常用框架

  • Spring framework
    经常说的spring框架,包括了ioc依赖注入,Context上下文、bean管理、springmvc等众多功能模块,其它spring项目比如spring boot也会依赖spring框架。
  • Spring boot
    目标是简化Spring应用和服务的创建、开发与部署,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用的微服务功能,可以和spring cloud联合部署。
    Spring Boot的核心思想是约定大于配置,应用只需要很少的配置即可,简化了应用开发模式。
  • Spring Data
    是一个数据访问及操作的工具集,封装了多种数据源的操作能力,包括:jdbc、Redis、MongoDB等。
  • Spring Cloud
    完整的微服务解决方案,是一系列不同功能的微服务框架的集合。Spring Cloud基于Spring Boot,简化了分布式系统的开发,集成了服务发现、配置管理、消息总线、负载均衡、断路器、数据监控等各种服务治理能力。比如sleuth提供了全链路追踪能力,Netflix套件提供了hystrix熔断器、zuul网关等众多的治理组件。config组件提供了动态配置能力,bus组件支持使用RabbitMQ、kafka、Activemq等消息队列,实现分布式服务之间的事件通信。
  • Spring Security
    用于快速构建安全的应用程序和服务,在Spring Boot和Spring Security OAuth2的基础上,可以快速实现常见安全模型,如单点登录,令牌中继和令牌交换。你可以了解一下oauth2授权机制和jwt认证方式。oauth2是一种授权机制,规定了完备的授权、认证流程。JWT全称是JSON Web Token,是一种把认证信息包含在token中的认证实现,oauth2授权机制中就可以应用jwt来作为认证的具体实现方法。

版权声明:文章内容总结于网络,如侵犯到原作者权益,请与我联系删除或授权事宜

你可能感兴趣的:(Spring概述)