# 导读:课程概览
## 1. Spring Boot是什么
我们知道,从 2002 年开始,Spring 一直在飞速的发展,如今已经成为了在Java EE(Java Enterprise Edition)开发中真正意义上的标准,但是随着技术的发展,Java EE使用 Spring 逐渐变得笨重起来,大量的 XML 文件存在于项目之中。繁琐的配置,整合第三方框架的配置问题,导致了开发和部署效率的降低。
2012 年 10 月,Mike Youngstrom 在 Spring jira 中创建了一个功能请求,要求在 Spring 框架中支持无容器 Web 应用程序体系结构。他谈到了在主容器引导 spring 容器内配置 Web 容器服务。这是 jira 请求的摘录:
> 我认为 Spring 的 Web 应用体系结构可以大大简化,如果它提供了从上到下利用 Spring 组件和配置模型的工具和参考体系结构。在简单的 `main()`方法引导的 Spring 容器内嵌入和统一这些常用Web 容器服务的配置。
这一要求促使了 2013 年初开始的 Spring Boot 项目的研发,到今天,Spring Boot 的版本已经到了 2.0.3 RELEASE。Spring Boot 并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。同时它集成了大量常用的第三方库配置,Spring Boot应用中这些第三方库几乎可以是零配置的开箱即用(out-of-the-box),大部分的 Spring Boot 应用都只需要非常少量的配置代码(基于 Java 的配置),开发者能够更加专注于业务逻辑。
## 2. 为什么学习Spring Boot
### 2.1 从Spring官方来看
我们打开 Spring 的[官方网站](http://spring.io/),可以看到下图:
![Spring官网首图](http://p99jlm9k5.bkt.clouddn.com/csdn/drk/springboot/0-2.png)
我们可以看到图中官方对 Spring Boot 的定位:*Build Anything*, Build任何东西。Spring Boot旨在尽可能快地启动和运行,并且只需最少的 Spring 前期配置。 同时我们也来看一下官方对后面两个的定位:
SpringCloud:*Coordinate Anything*,协调任何事情;
SpringCloud Data Flow:*Connect everything*,连接任何东西。
仔细品味一下,Spring 官网对 Spring Boot、SpringCloud 和 SpringCloud Data Flow三者定位的措辞非常有味道,同时也可以看出,Spring 官方对这三个技术非常重视,是现在以及今后学习的重点(SpringCloud 相关达人课课程届时也会上线)。
### 2.2 从Spring Boot的优点来看
Spring Boot 有哪些优点?主要给我们解决了哪些问题呢?我们以下图来说明:
![Spring Boot的优点](http://p99jlm9k5.bkt.clouddn.com/csdn/drk/springboot/0-3.png)
#### 2.2.1 良好的基因
Spring Boot 是伴随着 Spring 4.0 诞生的,从字面理解,Boot是引导的意思,因此 Spring Boot 旨在帮助开发者快速搭建 Spring 框架。Spring Boot 继承了原有 Spring 框架的优秀基因,使 Spring 在使用中更加方便快捷。
![Spring Boot与Spring](http://p99jlm9k5.bkt.clouddn.com/csdn/drk/springboot/0-1.png)
#### 2.2.2 简化编码
举个例子,比如我们要创建一个 web 项目,使用 Spring 的朋友都知道,在使用 Spring 的时候,需要在 pom 文件中添加多个依赖,而 Spring Boot 则会帮助开发着快速启动一个 web 容器,在 Spring Boot 中,我们只需要在 pom 文件中添加如下一个 starter-web 依赖即可。
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
```
我们点击进入该依赖后可以看到,Spring Boot 这个 starter-web 已经包含了多个依赖,包括之前在 Spring 工程中需要导入的依赖,我们看一下其中的一部分,如下:
```xml
<!-- .....省略其他依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.0.7.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.7.RELEASE</version>
<scope>compile</scope>
</dependency>
```
由此可以看出,Spring Boot 大大简化了我们的编码,我们不用一个个导入依赖,直接一个依赖即可。
#### 2.2.3 简化配置
Spring 虽然使Java EE轻量级框架,但由于其繁琐的配置,一度被人认为是“配置地狱”。各种XML、Annotation配置会让人眼花缭乱,而且配置多的话,如果出错了也很难找出原因。Spring Boot更多的是采用 Java Config 的方式,对 Spring 进行配置。举个例子:
我新建一个类,但是我不用 `@Service`注解,也就是说,它是个普通的类,那么我们如何使它也成为一个 Bean 让 Spring 去管理呢?只需要`@Configuration` 和`@Bean`两个注解即可,如下:
```java
public class TestService {
public String sayHello () {
return "Hello Spring Boot!";
}
}
```
```java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JavaConfig {
@Bean
public TestService getTestService() {
return new TestService();
}
}
```
`@Configuration`表示该类是个配置类,`@Bean`表示该方法返回一个 Bean。这样就把`TestService`作为 Bean 让 Spring 去管理了,在其他地方,我们如果需要使用该 Bean,和原来一样,直接使用`@Resource`注解注入进来即可使用,非常方便。
```java
@Resource
private TestService testService;
```
另外,部署配置方面,原来 Spring 有多个 xml 和 properties配置,在 Spring Boot 中只需要个 application.yml即可。
#### 2.2.4 简化部署
在使用 Spring 时,项目部署时需要我们在服务器上部署 tomcat,然后把项目打成 war 包扔到 tomcat里,在使用 Spring Boot 后,我们不需要在服务器上去部署 tomcat,因为 Spring Boot 内嵌了 tomcat,我们只需要将项目打成 jar 包,使用 `java -jar xxx.jar`一键式启动项目。
另外,也降低对运行环境的基本要求,环境变量中有JDK即可。
#### 2.2.5 简化监控
我们可以引入 spring-boot-start-actuator 依赖,直接使用 REST 方式来获取进程的运行期性能参数,从而达到监控的目的,比较方便。但是 Spring Boot 只是个微框架,没有提供相应的服务发现与注册的配套功能,没有外围监控集成方案,没有外围安全管理方案,所以在微服务架构中,还需要 Spring Cloud 来配合一起使用。
### 2.3 从未来发展的趋势来看
微服务是未来发展的趋势,项目会从传统架构慢慢转向微服务架构,因为微服务可以使不同的团队专注于更小范围的工作职责、使用独立的技术、更安全更频繁地部署。而 继承了 Spring 的优良特性,与 Spring 一脉相承,而且 支持各种REST API 的实现方式。Spring Boot 也是官方大力推荐的技术,可以看出,Spring Boot 是未来发展的一个大趋势。
## 3. 本课程能学到什么
本课程使用目前 Spring Boot 最新版本2.0.3 RELEASE,课程文章均为作者在实际项目中剥离出来的场景和demo,目标是带领学习者快速上手 Spring Boot,将 Spring Boot 相关技术点快速运用在微服务项目中。全篇分为两部分:基础篇和进阶篇。
基础篇(01—10课)主要介绍 Spring Boot 在项目中最常使用的一些功能点,旨在带领学习者快速掌握 Spring Boot 在开发时需要的知识点,能够把 Spring Boot 相关技术运用到实际项目架构中去。该部分以 Spring Boot 框架为主线,内容包括Json数据封装、日志记录、属性配置、MVC支持、在线文档、模板引擎、异常处理、AOP 处理、持久层集成等等。
进阶篇(11—17课)主要是介绍 Spring Boot 在项目中拔高一些的技术点
没有合适的资源?快使用搜索试试~ 我知道了~
spring-boot-practice-demo-master.zip
共1420个文件
xml:276个
java:122个
class:122个
需积分: 5 0 下载量 77 浏览量
2022-01-04
16:39:57
上传
评论
收藏 1.89MB ZIP 举报
温馨提示
SpringBoot基础实践Demo,SpringBoot初学者。
资源详情
资源评论
资源推荐
收起资源包目录
spring-boot-practice-demo-master.zip (1420个子文件)
001639dac93a82f8babbd319d18a00a918f2ce 237B
0067fb3d299b88a2c5e80704b9eabc75f63676 228B
0093de1d3145adcf5e7c965f5ccf33e3837011 51B
00fdb7b04619bdc78abafa7d127e2c8f311e7a 95B
010cb0e90a90ecd9f00c94f0b9d8803ce6166a 98B
0147f8f49ae73105dbea9d920ce781fdd8ad29 240B
018fdd0bc85ec4f15366f17c38c8128b95940a 50B
01c0158b6c856da1f2ea3c62a321d7a58130f2 235B
01d6fe3cb2bbc1daf3d7cafb178e77c36ef0a8 367B
01e860dbf4d8aa8b83a8a9d271be79d381e78b 92B
0268e4c39f4812caa08e4e956c3460decd8556 74B
047072e28edc2503f978c60529f947cf67e271 46B
056e316711b308a0a0bfc1a809fd686b97e1a0 250B
05b3b3957e2d05bc2ac2c490295f0b38fe10ae 200B
05e0da8a9d07e5898372a3af549264433061e9 238B
061dd5255a9603e550cdefc948abac1d522908 487B
06212833c6bacb26392a12aac510be8ac99130 231B
075fffc16919344b9169c80461d590faa0bf9c 60B
07c582874db119036bfbcb00fa51c406f811c7 241B
0853dd8821f4956ca65aea6dabd36bb2c41217 181B
085cd8de67755bef813f514ef9f0ca832b1364 1KB
087da7b48bfa45c8f12ce7a0bd0da1c09b2cc3 244B
08ddd2d1698c9750453f36885f7a153ab0d25c 74B
090b3ffa3c5412c06d348320c91dc32b1a7ef0 422B
099074c26df12ceb60ba3589ddce09431ab3eb 187B
09d683fb14f3f514d9113dff084b4101c55e83 226B
09fddd2ffa2a5c6e514909f1ef8f67718d635d 644B
0a80efb17257a3da3f6ee8e56172f685095f3c 234B
0af1836e142b061d4550ddfdca28c7d999d3c9 49B
0b62779954280ce5647b1d55d604ebab23a0b9 60B
0bb75ada5c694bb2f8d8e249d9f4d5a8b8d852 49B
0bb8e00a321a92410dfb106f747fb2b5720bf4 74B
0c78ccd4e6e6bcf12dfde99b68544892fb837a 540B
0ca6ced4d11aa9435a5729b964ab1ecfc32eed 45B
0cdadd05652fabc2cf29df8d2485ec9b1736cb 46B
0d4669c1888a00dffd2fb79ab00cc48bbc401c 2KB
0d4f7d46df9653f1a33d8ceac84b5a83af7066 49B
0dbcd19276e095d23f21e21e439162da380f48 74B
0e6a17c5db678d17d8b62e86f7c4139de1dc78 228B
0eaed8168565b4993666a3813ad1174f6f9c3c 641B
0f32be04f961a43e291b4c5e457c913059c599 49B
0fcf1b12b1d153f50bf39e223729e68b581061 228B
0fd7ca498fe6ebe5613b4561c7a7786da4926c 74B
11041745b6e44356035cdd44538daca09388f6 203B
110a87188785dc33db32b6205e42928410bd38 250B
111ed5a5396fe023caa5ebb50b03593dcd1c22 239B
11c5efed759306c0a66800fbf80cf35470ceec 191B
11c5f5d603f17d454dbc0dc00b3cca53586fe0 199B
12428271666e668548449161282cfc89c546cc 250B
1253d05d02f25ae658585064b8edc1642aeef0 234B
12724202c271e0a774b19e605a622809978ce8 45B
12e28c80ccda0c76d074d5909329e2dd79c05f 79B
135e1bd771e9564bee7ca87123dc622a987dba 884B
139e7a227576ea550e7d732e96123516164e85 256B
13b8854d2439c412e23aa58ec568a233b7f588 45B
14f4b3dbfd18e1e197e3883ffa1c4d609d165b 134B
15442c3a3d45dff8d682693d28908b5b91e28d 61B
157db4b4f9efe03c10c571a6f9807c42aaffd5 234B
1597af4ebc260b1a1ddc0ee69a8bead6de163e 79B
15c0cf53d97bb6679c5c0a855cad6ead7c03b8 46B
160cb139c0448e807eb8aaca2afe16cf8d5dba 74B
168a04c1ff8b3149fdfa5edb08ecd1bc4967b1 512B
17aa5070a535a4910dcea438f8061bfae3c5b6 50B
17f371e95a2d18d1c606422bc14c5c72b31bbb 250B
19b0718aa7b4972f020b578fbfa8040d731981 168B
1a3d85b6c0f591205d790c0c5fc9e20871b216 208B
1b2755e9fbfe0e8b2588fc4a6141e489a04bf4 63B
1b597078194aa25e543d16cb2b81c8528c027a 556B
1bb850371276eef1044f62b99320a6cd60deb9 235B
1be0faf3166b8f259c89c8c06d2c6ad563e2cb 45B
1c6648c635c591d2e59c309d1fbafbb7447700 58B
1d3b5d7c5559f190a76860e888f4162ca0e8cc 500B
1d41ce7ae1672e129c2adc4490eb128e583529 51B
1e8d299f03627a9c11cfbb3a89eb2546893d87 50B
1eaa2ea1b603704e26b7ede44a114c34481450 45B
1eeb9e9f8b2b4b0d119366dda99c6fd7d35c64 4KB
1fa0e223fc695fa5ab2aa2d55b8b28287edca1 5KB
202e55bdabdb7db2ab182e7e81b691a66d2054 254B
20e35f63bdaa58e71cc7f3ef4e8cd9a1025de8 250B
210171d0054c64904b5664d102ef5dec3ea3a5 64B
2134c1e0569b69b6dae0b34ff5009f053155d7 45B
21a5d7aa4bdbcb09321a8edc35a43023e429bf 75B
21b917e99316e2bc8eb2ec6cc177ff7a770e74 253B
21f6cefe8ee812acb2adb5603b7e614791db78 205B
2212de059b1ea234acc6eabc4c76aaa79246cd 46B
2357e94cfcfe607258a1113fd8d48b8880eb8e 105B
235dc139d393155aed5d8f4499d2906c3a1e6d 231B
239cb339ab39fe198608adc1f4d00dc351fe52 247B
239de96a616440836bbbe61dba4dd6c5a95cba 643B
23ed54f19061aaee764397ab7f3f1689a9a489 247B
2470eb31929705742959e41b7b2b704bfe2e65 94B
24a5aebefb53f227795700b0bcc50f47e0e5f7 770B
25521918c4ccd32eb24dcac80488785a36b007 50B
2584bb9b6852222fccccffdc63fdfc8c027117 62B
258de1aa856fb773beafab6c70c878260633b7 691B
25bb3907971f80f53c568d1cd86e5b9526ae37 253B
25ffb9d695e6f2d0087c5a7b9e2abc0655b4ac 169B
26bec360e3f38154f27d6077248b837e7d3bb4 236B
26d316e9a8b2386558ccf0dfa6b6291b0568c5 226B
273c460d7018813bc49cef6bf7893b00a215bd 47B
共 1420 条
- 1
- 2
- 3
- 4
- 5
- 6
- 15
KeepSlience
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0