Spring、SpringMVC、SpringBoot、SpringCloud之间的关系

1.Spring

特点:轻量级、控制反转、面向切面、容器、框架集合
简单理解:Spring是一个IOCAOP的容器框架

IOC:IOC最开始叫控制反转,后来也叫依赖注入(DI)。为什么呢?因为最开始大家都觉得IOC只有一个控制反转的作用,却忽略IOC的依赖注入,所以后来又取名为依赖注入。那么在Spring中是怎么实现IOC的呢?

class B{ // 通过ioc
	@Autowired
	private A a;
}
class B{ // 不通过ioc
	private A a = new A();
}

这里以SpringBoot框架为例:用@Component, @Repository, @Service等注解可以将类A放到IOC容器中,然后用@Autowired、@Resource、@Reference注解将类A注入到类B中,这就是依赖注入。这时是通过IOC将类A中的属性、方法注入到类B,掌握权是IOC。如果是在类B中new了一个类A,这时掌握权是创建类B时的对象,权力由对象转为IOC,这就是控制反转

AOP面向切面编程,AOP(面向切面编程),可以说是OOP(面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能。日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。对于其他类型的代码,如安全性、异常处理和透明的持续性也是如此。这种散布在各处的无关的代码被称为横切(cross-cutting)代码,在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。可以参考这篇文章

2.SpringMVC

SpringMVC是基于Spring功能之上添加了MVC模式,想用SpringMVC必须先依赖Spring。其实就是相当于在Spring框架基础上实现了MVC设计模式的框架。那么什么是MVC呢?

  • 模型(Model )封装了应用程序的数据和一般他们会组成的POJO。相当于service、dao
  • 视图(View)是负责呈现模型数据和一般它生成的HTML输出,客户端的浏览器能够解释。相当于我们返回的页面
  • 控制器(Controller )负责处理用户的请求,并建立适当的模型,并把它传递给视图渲染。就相当于我们的Controller

mvc实现了视图层和逻辑层的分离

3.SpringBoot

  • 创建独立的spring应用程序
  • 嵌入Tomcat,无需部署WAR文件
  • 简化Maven配置
  • 自动装配Bean

4.SpringCloud

Spring Cloud是一个基于Spring Boot实现的微服务架构开发工具,它为基于JVM的云原生应用开发中涉及的配置管理、服务发现、熔断器、智能路由、微代理、控制总线、分布式会话和集群状态管理等操作提供了一种简单的开发方式。

你可能感兴趣的:(Spring,spring,mvc,java)