1.Spring(2003)
Spring框架是由于软件开发的复杂性而创建的,使用的是基本的JavaBean来完成以前只可能由EJB完成的事情,然而,Spring的用途不仅仅限于服务器端的开发,从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
1.1依赖注入(DI)
每个基于Java的应用程序都有几个对象一起工作来展示最终用户将其视为工作应用程序的内容。在编写复杂的Java应用程序时,应用程序类应尽可能独立于其他Java类,以增加重用这些类的可能性,并在单元测试时独立于其他类测试它们。依赖注入有助于将这些类粘合在一起,同时保持它们独立。依赖注入仅仅是控制反转的一个具体例子。
1.2面向方面编程(AOP)
面向方面编程需要将程序逻辑分解为称为所谓关注的不同部分,跨越应用程序多个点的功能称为横切关注点,这些横切关注点在概念上与应用程序的业务逻辑分离,有很多常见的很好的例子,例如日志记录,审计,声明式事务,安全性,缓存等等。
2.SpringMVC
2.1模型 - 视图 - 控制器(MVC)
Model模型封装了应用程序数据,通常它们将由POJO组成; View视图负责呈现模型数据,并在总体上产生HTML输出,客户端的浏览器可以解释;Controller控制器负责处理用户请求,并且建立一个合适的模型,并将其传递到用于呈现该视图。
2.2DispatcherServlet
Spring Web模型 - 视图 - 控制器(MVC)框架是围绕DispatcherServlet设计的,它处理所有HTTP请求和响应。
3.Spring Boot(2013)
Spring Boot应用本质上就是一个基于Spring框架的应用,Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。它的目标是简化Spring应用和服务的创建、开发与部署,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用的微服务功能,另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。Spring Boot的核心思想是约定大于配置,应用只需要很少的配置即可,简化了应用开发模式。
4.Spring Cloud(2015)
Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,从而简化了开发者的代码量,简化了分布式系统的开发,集成了服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等各种服务治理能力。比如sleuth提供了全链路追踪能力,Netflix套件提供了hystrix熔断器、zuul网关等众多的治理组件。config组件提供了动态配置能力,bus组件支持使用RabbitMQ、kafka、Activemq等消息队列,实现分布式服务之间的事件通信,都可以用Spring Boot的开发风格做到一键启动和部署。
5.Spring Data
是一个数据访问及操作的工具集,封装了多种数据源的操作能力,包括:jdbc、Redis、MongoDB等。
6.Spring Security
主要用于快速构建安全的应用程序和服务,在Spring Boot和Spring Security OAuth2的基础上,可以快速实现常见安全模型,如单点登录,令牌中继和令牌交换。你可以了解一下oauth2授权机制和jwt认证方式。oauth2是一种授权机制,规定了完备的授权、认证流程。JWT全称是JSON Web Token,是一种把认证信息包含在token中的认证实现,oauth2授权机制中就可以应用jwt来作为认证的具体实现方法。
注:本文内容来源于网络收集