文章目录
1.Spring、SpringMVC、SpringBoot、SpringCloud关系
刚开始接触框架时,对Spring、SpringMVC、SpringBoot、SpringCloud之间的关系都会比较模糊,经常会混淆或者不明所以,我们先来将其做一个简单介绍,方便大家了解对比。
Spring是一个轻量级的控制反转(Ioc)面向面切编程(AOP)容器的开源框架。降低了开发的难度、低入侵、解耦合、声明事务管理方便集成其他框架、容器。
而SpringMVC是Spring中包含的其中一个模块,其遵循MVC设计模式最终实现前后端项目的松耦合而建立的。
由于Spring构建项目时配置设置的复杂性,所以创建了spring boot ,其是为 spring 服务的,是用来简化新 spring 应用的初始搭建以及开发过程的。
spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。
2.spring概念
spring框架是由一名悉尼大学的音乐学博士Rod Johnson开发的,其于2002年,首次推出了Spring框架雏形interface21框架。2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。其开发理念是为了将现有技术整合,使其更加实用,所以spring本身就是一个大杂烩,整合了当时已有的一些框架技术。
spring是一个开源,免费的轻量级,非入侵式框架或者说容器,核心是控制反转IOC与面向切面开发AOP。
核心的IOC容器技术,管理依赖的对象,不需要程序员创建和管理依赖的对象,从而实现层与层之间的解耦。
核心的AOP技术:方便我们将一些非核心业务逻辑抽离,从而实现核心业务和非核心业务的解耦。
3.Spring Boot概念
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。Spring Boot 现在已经成为Java 开发领域的一颗璀璨明珠,它本身是包容万象的,可以跟各种技术集成。成为SpringBoot全家桶。
Springboot最重要的就是约定大于配置,为了简化Spring配置的快速开发整合包,主要实现了三大功能:
- 通过starter和依赖管理解决依赖问题(通过maven子父工程的方式)
- 通过自动配置spring,解决spring配置复杂问题
- 通过内嵌web容器,由应用启动tomcat,而不是tomcat启动应用,来解决部署运行问题。
- 提供生产就绪型功能,如指标,健康检查和外部配置
4.SpringMVC概念
SpringMVC是Spring的一个后续产品,可以将其理解为Spring的一个子项目,由Spring团队的产品,遵循MVC设计模式最终实现前后端项目的松耦合而建立的。
MVC设计模式中,M是Model是模型层,用来封装数据,V是View是视图层,用来展示数据,C是Controller是控制层, 接受浏览器发来的请求,并做出数据的响应,所以SpringMVC框架是用来接受请求 + 做出响应的。
因为是Spring家族原生产品,所以与IOC容器等基础设施可以无缝对接,并且其基于原生的servlet,封装了功能强大的前端控制器DispatcherServlet,可以对请求和响应进行统一处理。使用SpringMVC进行开发代码整洁,开发效率高,性能也十分优异。
5.SpringCloud概念
springCloud是基于SpringBoot的一整套实现微服务的框架。其提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。五大组件分别为:
- Eureka实现服务治理;
- Ribbon主要提供客户侧的软件负载均衡算法;
- Hystrix断路器,保护系统,控制故障范围;
- Zuul,api网关,路由,负载均衡等多种作用;
- Config配置管理。
6.后续计划
后续我们会先简单研究SpringMVC的使用,进行Spring开发的具体流程及常用注解使用的简单了解后,依靠VUE框架进行一个SpringBoot项目的基础功能开发。
上面的实战案例完成后,我们会基于若依权限管理子系统,进行SpringCloud项目的流程开发。
在开发过程中,我们会穿插介绍中间使用到的各种中间件,包含spring等框架内嵌的一些中间件的使用。