1.创建SpringBoot项目的三种方式
1.1 . 通过改造 Maven 工程创建
1.1.1 在IDEA 界面,依次点击 File -> New -> Project;
![image-20221227135436694](https://i-blog.csdnimg.cn/blog_migrate/51ea04358a5e06bb42cf04567d8c662b.png)
1.1.2 选择 Maven 和 JDK 版本,点击 Next;(此处不选择 Maven 模板)
![image-20221227135554667](https://i-blog.csdnimg.cn/blog_migrate/4ddfcbd72559e1d0d6856ce5372b4460.png)
1.1.3 在pom.xml 文件中引入依赖
<properties>
<java.version>8</java.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.9.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
1.1.4 编写启动类
package com.zhang;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
1.1.5 Controller
@RestController
@RequestMapping("/books")
public class UserController {
@GetMapping("/{id}")
public String getById(@PathVariable Integer id) {
System.out.println("id ==> " + id);
return "hello , spring boot! ";
}
}
这里需要注意的是,搭建一个简单的Springboot项目,最开始将启动类main函数与controller放到一个类里,可以正常启动和访问,但是将两个分开再启动时i问就会报错: This application has no explicit mapping for /error,so you are seeing this as a fallback.controller类应该位于引导类的同级包或者子级包中.需要将下图的引导类放在com.zhang包下即可访问controller
![image-20221227140906633](https://i-blog.csdnimg.cn/blog_migrate/64893ca23c2800b46f57d05b3d948bab.png)
或者在main函数启动类上加注解:@SpringBootApplication(scanBasePackages = “com”) 问题也可解决。
@SpringBootApplication(scanBasePackages = "com")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
1.1.6 检测是否创建成功
1.6.1 运行启动类
![image-20221227141557402](https://i-blog.csdnimg.cn/blog_migrate/5222091a3f98ca25b653000d92c88040.png)
1.6.2 浏览器访问
![image-20221227141645528](https://i-blog.csdnimg.cn/blog_migrate/806f79bc6b2549399ba57ff463592e6f.png)
1.2. 通过 IDEA 创建
1.2.1 点击 Spring Initializr ,填写Group 和 Artifact 信息,选择对应的开发语言,打包方式,Java 版本等 ,点击 Next;;
![image-20221227162217893](https://i-blog.csdnimg.cn/blog_migrate/be13a6ac0da3d563fd97c9784e0d123c.png)
1.2.2 选择 Web 依赖 和 Spring Boot 版本号,点击 Next;
![image-20221227162751946](https://i-blog.csdnimg.cn/blog_migrate/b596ae9b511b66c30f332ae6259f7bd4.png)
1.3. 基于SpringBoot官网创建项目
-
官方推荐方式:
spring initializr
- 选择开发语言,版本号,填写项目名,打包方式,指定 Java 版本等,点击 GENERATE,网站自动生成并下载 SpringBoot 项目
- 解压下载的文件,用开发工具打开即可。
2. SpringBoot项目快速启动
2.1 mvn 运行 package将 boot 项目打包
![image-20221227164434997](https://i-blog.csdnimg.cn/blog_migrate/5e7c5eee2186898ea0813521c8468df9.png)
2.2 打包完成后,找到 jar 包所在位置,打开到 jar 包所在文件夹
![image-20221227211444234](https://i-blog.csdnimg.cn/blog_migrate/ed0631f7fda51970c8771baceed27a1b.png)
2.4 在路径栏输入 cmd ,进入命令窗口
![image-20221227211533808](https://i-blog.csdnimg.cn/blog_migrate/b6f2408942267605c5248043faa93d56.png)
2.5 执行启动指令 :java -jar 工程名.jar
java -jar 工程名.jar # 项目的名称根据实际情况修改
注意事项:
jar支持命令行启动需要依赖maven插件支持,请确认打包时是否具有SpringBoot对应的maven插件。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
3. SpringBoot概述
3.1 起步依赖
1.spring-boot-starter-parent,所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),组合了一套最优搭配的技术版本。
2.在各种starter中,定义完成了该功能需要的坐标合集,其中大部分版本信息来自于父工程。
3.我们的工程继承parent,引入starter后,通过依赖传递,就可以简单方便获取到需要的jar包,并不会存在版本的冲突问题。
4. 切换服务器
把tomcat服务器切换为jetty服务器
4.1 web起步依赖环境中,排除Tomcat起步依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 排除依赖-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
4.2 添加Jetty起步依赖,版本由SpringBoot的starter控制
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
4.3 运行启动类
![image-20221227221504217](https://i-blog.csdnimg.cn/blog_migrate/041bd9197dea7aaab3607d2452ec3948.png)