1.定义说明
Spring, Spring MVC, Spring Boot 和 Spring Cloud 是Spring家族中的四个不同的项目,它们有各自的功能,并且可以在Spring应用程序中一起使用。
1)Spring
Spring是一个开源容器框架,它集成各类型的工具,通过核心的Bean factory实现了底层的类的实例化和生命周期的管理。它提供了一系列基础功能和依赖注入(DI)机制,最核心的功能就是控制反转(IOC)和面向切面编程(AOP)。Spring分为 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web 和 Spring Web MVC七个部分。
2)Spring MVC
Spring MVC是一个模型视图控制器(MVC)框架,用于创建web应用程序,属于Spring框架的一部分。当我们声明Controller方法时,SpringMVC将Controller方法与uri请求资源映射绑定,当客户端发送http请求,服务器控制器(由DispatcherServlet实现),率先处理请求,并将请求转发到绑定uri的controller方法,方法处理完毕返回响应报文。
3)Spring Boot
Spring Boot是一个用于简化Spring应用程序初始搭建以及开发过程的工具,在2014年4月发布。它提供了一种快速开始应用的方式,倡导约定大于配置,将很多集成配置的工作,内置成默认配置,去繁从简,帮助开发者快速开发和运行Spring应用。
比如应用集成了spring-boot-web-starter,该应用就拥有了web的能力,应用集成了spring-boot-starter-data-redis,该应用就具备快速集成redis服务的能力。
4)Spring Cloud
Spring Cloud是一系列框架的有序集合,基于 Spring Boot 框架,它将市面上较好的微服务框架集成进来,如服务注册发现、配置中心、消息总线、负载均衡、服务限流熔断、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。它是一套工具服务,提供了快速构建分布式系统的服务工具,在2015 年 3 月发布。
比如应用集成spring-cloud-config-server,该应用就成了配置中心服务端,应用集成spring-cloud-config-client,那应用就成了配置中心客户端。
2.总结说明
一句话总结:
1)Spring 是整套开源框架运转的核心;
2)SpringMVC是专门实现Web开发的视图控制器框架;
3)SpringBoot 使应用快速集成某个服务,或拥有某个工具类型的功能;
4)SpringCloud 使应用快速变成某个服务,或拥有某个工具类型的功能;
3.举例说明
1)Spring MVC举例
以下是一个简单的Spring MVC应用程序的例子:
@Controller
public class HelloWorldController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "Hello, World!";
}
}
在这个例子中,我们创建了一个简单的Spring MVC控制器,它处理"/hello"的请求并返回"Hello, World!"。
2)Spring Boot举例
Spring Boot和Spring Cloud可以用于快速搭建和部署Spring应用程序,例如:
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
在这个Spring Boot应用程序中,我们使用@SpringBootApplication注解来启动Spring应用程序,并通过SpringApplication.run()方法运行它。
3)Spring Cloud举例
Spring Cloud可以用于服务发现和配置管理,例如使用Spring Cloud Netflix的Eureka:
@EnableEurekaClient
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
在这个例子中,我们使用@EnableEurekaClient注解来标记应用程序作为Eureka客户端,Eureka是一种服务发现机制,可以帮助我们快速地在分布式系统中找到服务。