一、Spring Boot 自述
世界上最好的文档来源自官方的《Spring Boot Reference Guide》,是这样介绍的:
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”…Most Spring Boot applications need very little Spring configuration.
Spring Boot(英文中是“引导”的意思),是用来简化Spring应用的搭建到开发的过程。应用开箱即用,只要通过 “just run”(可能是 java -jar 或 tomcat 或 maven插件run 或 shell脚本),就可以启动项目。二者,Spring Boot 只要很少的Spring配置文件(例如那些xml,property)。
因为“习惯优先于配置”的原则,使得Spring Boot在快速开发应用和微服务架构实践中得到广泛应用。
Java JDK环境和Maven工具安装完,就可以Spring Boot学习啦!
二、HelloWorld实战详解
(一)、创建Spring Boot项目的两种方式
创建Spring Boot项目有两种方式,一个是通过Spring Initalizr脚手架来创建一个spring Boot工程,也可通过普通的maven工程来改造成一个spring Boot工程。
1、脚手架方式创建Spring Boot项目
IDEA开发工具为我们提供的一种快速创建spring Boot项目的一个功能(可视化界面),我们只需要点点鼠标就可以快速创建,缺点:必须在有网络的环境下才能创建,等下步骤会说到。
1).点击创建项目 file>new>project,选择Spring Initializr(脚手架),完成点击 next即可
选择好你的JDK版本环境(Project SDK)
https://start.spring.io/ 为脚手架的服务连接,是一个在线服务功能,需要联网才能使用,可以试着点进去看看。
2)编辑项目的信息,编辑完成点击 next即可
- groupId:域名倒序
- ArtifactId:项目名称
- 其他默认即可
3)配置springboot项目的基础依赖,添加完成点击 next即可
- 选择项目需要添加的依赖勾选即可,已选择的依赖会在右侧显示处理
- 基础的springboot我们选择一个Spring Web依赖即可
4)确认项目的的信息以及路径,确认无误finish即可
5)选择新窗口打开,项目界面如下,可以通过自动生成的启动类启动项目了
6)我们可以查看项目的pom.xml文件
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- lookup parent from repository -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.7</version>
<relativePath/>
</parent>
<groupId>com.learn</groupId>
<artifactId>springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- Spring Boot web依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
<build>
<plugins>
<!--springboot项目的maven打包插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
脚手架创建spring Boot工程步骤完毕。
总结:可以通过IDEA工具的脚手架(Spring Initializr)来配置spring Boot工程,初始化我们的项目信息,还能给我们的项目添加一些依赖,并且为我们生成了包路径,生成了启动类,可直接启动,缺点:需要网络。
2、Maven方式创建Spring Boot项目
通过更改pom.xml中的配置把项目变成spring Boot项目,优点:没有网络也可以创建spring Boot项目,只要我们mavne已经下载spring Boot项目的必要依赖。
- 步骤的核心就是修改我们maven文件中pom.xml文件,修改成上面的脚手架生成的pom.xml文件即可。
我们还是从创建maven项目实操开始吧。
1)创建maven项目(file> new > project),点击下一步
2)编辑好项目的信息,点击next完成,在新窗口打开
3)编辑好项目的信息,点击finish完成,在新窗口打开
4)配置项目的pom.xm文件
这是刚创建好的maven空项目,我们可以给他配置成为一个springboot项目
- 父工程依赖
<!--父工程,有这个项目即为springboot项目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
- Spring Web依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
- 写项目的启动类
package com.learn.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
}
}
- 4)启动项目
5)我们可以查看项目的pom.xml文件
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- lookup parent from repository -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.7</version>
<relativePath/>
</parent>
<groupId>com.learn</groupId>
<artifactId>springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- Spring Boot web依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
<build>
<plugins>
<!--springboot项目的maven打包插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
maven方式创建springboot项目步骤完毕。
总结:通过修改maven 项目的pom.xml文件,添加父工程以及相关依赖我们就可手动创建springboot一个简单的工程了,当然它仅仅就是一个基础的springboot的工程而已,我们需要根据项目的实际需求,手动添加插件和依赖。
(二)、HelloWorld编写
1、Controller层
HelloWorldController的代码如下:
/**
* Spring Boot HelloWorld案例
*
* Created by xiaobai on 2023/1/4.
*/
@RestController
public class HelloWorldController {
@RequestMapping("/")
public String sayHello() {
return "Hello,World!";
}
}
@RestController和@RequestMapping注解是来自SpringMVC的注解,它们不是SpringBoot的特定部分。
1. @RestController:提供实现了REST API,可以服务JSON,XML或者其他。这里是以String的形式渲染出结果。
2. @RequestMapping:提供路由信息,”/“路径的HTTP Request都会被映射到sayHello方法进行处理。
具体参考,世界上最好的文档来源自官方的《Spring Framework Document》
2、启动应用类
和第一段描述一样,开箱即用。如下面Application类:
/**
* Spring Boot应用启动类
*
* Created by xiaobai on 2023/1/4
*/
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
1. @SpringBootApplication:Spring Boot 应用的标识
2. Application很简单,一个main函数作为主入口。SpringApplication引导应用,并将Application本身作为参数传递给run方法。具体run方法会启动嵌入式的Tomcat并初始化Spring环境及其各Spring组件。
3、Controller层测试类
/**
* Spring Boot HelloWorldController 测试 - {@link HelloWorldController}
*
* Created by xiaobai on 2023/1/4.
*/
public class HelloWorldControllerTest {
@Test
public void testSayHello() {
assertEquals("Hello,World!",new HelloWorldController().sayHello());
}
}
三、运行
Just Run的宗旨,运行很简单,直接右键Run运行Application类。同样你也可以Debug Run。可以在控制台中看到:
然后访问 http://localhost:8080/ ,即可在页面中看到Spring Boot对你 say hello:
四、小结
1. Spring Boot 项目搭建
2. Spring Boot 启动及原理