SpringBoot3快速入门
准备
知识准备
Spring、SpringMVC、MyBatis、Maven、IDEA
工具版本
java17+
*
SpringBoot:3.1.1*
IDEA:2021.2.1+*
Maven:3.6.3+*
Tomcat:10.0+*
Servlet:5.0+*
GraaIVM Community:22.3
Native Build Tools:0.9.23
springBoot简介
SpringBoot帮我们简单、快速的创建一个独立的、生产级别的Spring应用,大多数SpringBoot应用只需要编写少量配置即可快速整合Spring平台以及第三方技术。具有简化开发、简化配置、简化整合、简化部署、简化监控、简化运维等作用。
特性
- 快速创建独立的Spring应用
SSM:导包、写配置、启动运行 - 直接嵌入Tomcat、Jetty or Undertow(无需部署war包)
- 提供可选的starter(场景启动器),简化应用整合(重点)
为每种场景准别一个依赖:web-starter、mybatis-starter… - 按需自动配置Spring以及第三方库
如果这些场景我要使用(生效),这个场景的所有配置都会自动配置好。 - 提供生产级特性:如监控指标、健康检查、外部化配置等
- 无代码生成、无xml
快速入门
场景:浏览器发送/hello请求,返回"Hello, SpringBoot3!"
开发流程
官网介绍
1、创建maven项目
创建一个空项目
在父项目中创建模块
创建完成
2、配置项目继承
在module的pom.xml中配置项目继承spring-boot-starter-parent
<!--所有springBoot项目都必须继承自spring-boot-starter-parent-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.1</version>
</parent>
3、导入场景
<!--如:开发web功能需要的依赖-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
4、创建SpringBoot主程序
package com.louis;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author XRY
* @date 2023年07月09日11:39
* 启动SpringBoot项目的主入口程序
*/
@SpringBootApplication//该注解表述这是一个SpringBoot应用
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class, args);
}
}
5、创建控制器(HelloController)
package com.louis.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author XRY
* @date 2023年07月09日11:44
*/
//@ResponseBody用于标识一个控制器方法,可以将该方法的返回值直接作为响应报文的响应体响应到浏览器。
//@RequestMapping注解是一个用来处理请求地址映射的注解,可用于映射一个请求或一个方法,可以用在类或方法上。
//@GetMapping是Spring4.3提供的新注解,它是一个组合注解,等价于@RequestMapping(method = RequestMethod.Get ),用于简化开发
//@RestController:相当于@Controller+@ResponseBody————在页面显示数据
//@ResponseBody
//@Controller
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "Hello, Spring Boot3";
}
}
6、SpringBoot简化部署
jar指令的运行需要依赖maven插件支持。(重要)
<!--SpringBoot应用打包插件-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.4</version>
</plugin>
</plugins>
</build>
打包流程
也可以使用mvn clean package 将项目打包成可执行的jar包(
注意
:在项目目录下打开终端执行,而不是在idea的terminal,并且需要先停掉当前的项目。),我们只需要将这个jar包直接上传到linux的服务器上就可以直接运行,不用安装Tomcat。
按照上图中的提示直接打开jar包所在的目录,在目录位置输入cmd运行。在命令行窗口输入java -jar boot3-01-1.0-SNAPSHOT.jar运行。
注意:想要修改端口号等配置,只需要在jar包同级目录下新建一个application.properties文件,在其中写入相应的内容即可。
特性小结
1、简化整合
只需要导入相关的场景,项目机会拥有相关的功能。即场景启动器。默认支持的所有场景。
- 官方提供的场景会命名为:
spring-boot-starter-*
- 第三方提供的场景会命名为:
*-spring-boot=starter
2、简化开发
无需编写任何配置,直接开发业务。
3、简化配置
想要更改文中的许多配置,只需要在当前文件中(resources)下添加一个application.properties文件,并写入相关配置即可,文档位置。如:定义端口
server.port=999
4、简化部署
打包为为可执行的jar包,只需要Linux服务器上包含java环境即可。
5、简化运维
只需要修改配置(外部放一个application.properties)文件、监控、健康检查。
Spring Initializr创建导向
新建模块
点击next
左边通过选框选择场景,在右边我们可以看到我们选择的内容。
通过这种方式创建的项目,已经包含了核心的starter。
springBoot有一个默认规则:只扫描主程序所在的包及其子包,放在其他位置没有作用。
创建HelloController
package com.louis.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author XRY
* @date 2023年07月09日15:03
*/
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "Hello Louie";
}
}