【框架】Spring Boot

有些话、适合烂在心里 提交于 2019-11-30 03:36:20

概述

1)What is Spring?

  • 应用框架,一个大体的web程序包含的Dao、Service、Impl和显示页面等相关组件
  • 编程和配置的模版,能够包含了各种数据库连接等常用功能,使得我们不需要经常去接触底层的重复性代码
  • 底层支持,如对于不同的数据库Mysql、Oracle等Spring内部有相关的配置能够支持忽视这部分差异,无差别地对数据库进行操作

缺点:

  • 臃肿
  • 复杂的setup步骤
  • 复杂的配置
  • 复杂的build和deploy步骤

2)What is Spring Boot?

Spring Boot是一个中间件,套接在Spring之上,充当起简化配置和COC的作用。

用Spring Boot前

App
Tomcat
Spring
OS

 用Spring Boot后

App
Spring
OS

可以看到,连Tomcat的配置都简化了(被放在了一个jar文件中),专心写程序,其他的配置都只需要交给Spring Boot按照默认规格执行即可。

IoC的概念

首先,要明白IoC是为了低耦合。因为往往对象的Hard Coding会使得不同的类之间存在紧耦合,不便于拓展。如下图所示:

1)为什么?

我们不希望实现代码之间的紧耦合(如Computer类中存在IntelCPU类对象这种硬编码),于是我们希望能够通过“注入”的方式,创建Computer的过程中能够自动地在Computer类中创建一个IntelCPU类的实现(而非硬编码实现)。

2)怎么做?

这种自动的“依赖注入”过程,即IoC(Invert of Control)或者DI(Dependency Inverse),需要通过依赖注入容器(Dependency Inverse Container)来实现。在我们这个情况,用的就是Spring Container。

在Spring中,我们通过XML文件配置这种依赖(谁是谁的“配件”啊,我生成的时候你也给我生成一个呀),因为我们可以在将来更改XML的配置从而改变依赖关系,因此不是一种紧耦合。

我个人愿意把这种松耦的编程风格叫做“面向XML编程”。

3)和Spring Boot的关系

因为依赖注入的时候,我们总要花时间去关心XML的配置。而Spring Boot的作用就是让配置变得更简单的,所以它简化了我们配置XML的步骤。

具体实现就是通过加上注解,标识好哪些是等待装配的组件,让系统自动去装配。如下图:

简化过后的电脑Computer中,需要一个CPU组件。于是在CPU成员头上加@Autowired注解,让Spring Boot自己去找相应的Component自动装配。对于等待被安装的类,用@Component表明它是一个充当组件的类。

此外,松耦合能够实现局部的测试(即测试时排除某个Component的代码,以便排查错误)。只有松耦合才能够创建Mock Object,能够在测试代码的时候不影响数据库中的数据。

总的来说,松耦合能够帮助我们(1)更好地测试 (2)更好地维护、拓展代码

使用

1)有STS(Springboot Tool Suite)就直接用STS,基本上就是多了一个“New Spring Starter Project...”的Eclipse

2)要么就到官网(https://start.spring.io/)初始化把对应的Spring Boot Starter的zip文件下载下来,然后当作Project打开。

 

教程:我强推嘟嘟

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!