一、Spring MVC
主要特点
传统的基于Servlet的Web框架: 需要手动配置Servlet、Filter等。
配置灵活: 可以使用XML或Java类来定义Bean和依赖关系。
依赖于Web容器: 需要部署到外部Web容器(如Tomcat、Jetty)中运行。
视图技术支持: 支持JSP、Thymeleaf、FreeMarker等多种视图技术。
目录结构
主要区别
配置复杂: 需要手动配置Servlet、Filter、Listener等。
依赖外部Web容器: 需要将应用程序打包成WAR文件并部署到Web容器中。
二、Spring Boot
主要特点
快速开发: 提供了自动配置,减少了大量的配置工作。
内嵌Web服务器: 内嵌Tomcat、Jetty等Web服务器,可以直接运行。
独立运行: 可以打包成JAR文件,独立运行,不需要外部Web容器。
丰富的Starter: 提供了各种Starter依赖,简化了依赖管理。
目录结构
主要区别
自动配置: 大量的自动配置减少了手动配置的工作量。
内嵌Web服务器: 可以直接运行,不需要外部Web容器。
独立运行: 可以打包成JAR文件,独立运行。
三、SpringCloud
主要特点
基于Spring Boot: 继承了Spring Boot的所有优点,如自动配置和内嵌Web服务器。
分布式系统支持: 提供了服务发现、配置管理、负载均衡、断路器等功能。
微服务架构: 适用于构建微服务架构的应用程序。
丰富的组件: 提供了Eureka、Config、Ribbon、Hystrix、Zuul等组件,简化了分布式系统的开发。
目录结构
主要区别
分布式系统支持: 提供了服务发现、配置管理、负载均衡、断路器等功能,适用于构建分布式系统和微服务架构。
基于Spring Boot: 继承了Spring Boot的所有优点,如自动配置和内嵌Web服务器。
总结
Spring MVC: 传统的Web框架,需要手动配置,依赖于外部Web容器。
Spring Boot: 基于Spring的快速开发框架,提供自动配置和内嵌Web服务器,可以独立运行。
Spring Cloud: 基于Spring Boot,用于构建分布式系统和微服务架构,提供了许多分布式系统的基础设施。
每种框架的目录结构大致相似,但Spring Boot和Spring Cloud简化了配置,并且通常包含一个主类(如 Application.java
)来启动应用程序。Spring Cloud在此基础上增加了分布式系统的支持组件。