0.学习目标
- 了解SpringBoot的作用
- 掌握java配置的方式
- 了解SpringBoot自动配置原理
- 掌握SpringBoot的基本使用
1了解SpringBoot
- 什么是SpringBoot
- 为什么要学习SpringBoot
- SpringBoot的特点
1.1什么是SpringBoot
SpringBoot是Spring项目中的一个子工程,进入官网后可以看到
点击进去后发现
翻译下就是:
Spring Boot 简化了基于Spring的应用开发,只需要“run”就能创建一个独立的、生产级别的Spring应用。Spring Boot为Spring平台及第三方库提供开箱即用的设置(提供默认设置,存放默认配置的包就是启动器),这样我们就可以简单的开始。多数Spring Boot应用只需要很少的Spring配置。
其实人们把Spring Boot 称为搭建程序的脚手架
。其最主要作用就是帮我们快速的构建庞大的spring项目,并且尽可能的减少一切xml配置,做到开箱即用,迅速上手,让我们关注与业务而非配置。
1.2.为什么要学习SpringBoot
java一直被人诟病的一点就是臃肿、麻烦。当我们还在辛苦的搭建项目时,可能Python程序员已经把功能写好了,究其原因注意是两点:
- 复杂的配置,
项目各种配置其实是开发时的损耗, 因为在思考 Spring 特性配置和解决业务问题之间需要进行思维切换,所以写配置挤占了写应用程序逻辑的时间。 - 一个是混乱的依赖管理。
项目的依赖管理也是件吃力不讨好的事情。决定项目里要用哪些库就已经够让人头痛的了,你还要知道这些库的哪个版本和其他库不会有冲突,这难题实在太棘手。并且,依赖管理也是一种损耗,添加依赖不是写应用程序代码。一旦选错了依赖的版本,随之而来的不兼容问题毫无疑问会是生产力杀手。
我们可以使用SpringBoot创建java应用,并使用java –jar 启动它,就能得到一个生产级别的web工程。
1.3.SpringBoot的特点
SpringBoot的主要目标是:
- 为所有 Spring 的开发者提供一个非常快速的、广泛接受的入门体验
- 开箱即用(启动器starter-其实就是SpringBoot提供的一个jar包),但通过自己设置参数(.properties),即可快速摆脱这种方式。
- 提供了一些大型项目中常见的非功能性特性,如内嵌服务器、安全、指标,健康检测、外部化配置等
- 绝对没有代码生成,也无需 XML 配置。
更多的大家可以去官网查看
2.快速入门
下面,我们就开始怎么写一个demo
环境准备:JDK8,maven,SpringBoot2.1.8.RELEASE
2.1.创建工程
我们先创建一个空的maven新工程:
输入GroupId和ArtifactId以及版本:
完成
打开pom.xml文件,因为是写一个SpringBoot项目,所以我们得怎么和它关联起来,SpringBoot提供一个父工程spring-boot-starter-parent,里面对各种常见的依赖的版本进行了管理,我们项目中需要什么依赖直接引入,不需要操心版本。
2.2.1.引入父工程依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
</parent>
2.2.2.添加web启动器
为了让SpringBoot帮我们完成各种自动配置,我们必须引入SpringBoot提供的自动配置依赖,我们称为启动器
。因为我们是web项目,这里我们引入web启动器:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
需要注意的是,我们并没有在这里指定版本信息。因为SpringBoot的父工程已经对版本进行了管理了
这个时候,我们会发现项目中多出了大量的依赖:
2.2.3.完整的pom文件
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>com.commercial</groupId>
<artifactId>commercial.demo</artifactId>
<version>1.0.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <version>2.1.8.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
2.3.启动类
SpringBoot项目通过main函数启动,需要我们有一个启动类;
代码
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
2.4.编写control
@RestController@RequestMapping("/ApplicationController")
public class ApplicationController {
@GetMapping("/helloWorld")
public String HelloWorld() {
return "HelloWorld !!! ";
}
}
2.5.启动测试
现在运行main函数
会看到一些信息:
- 1)监听的端口是8080
- 2)SpringMVC的映射路径是:/
- 3)
/HelloWorld
路径已经映射到了ApplicationController
中的HelloWorld()
方法
测试成功。
2.6.目录结构
好了,基本的创建demo完成。