目录
1. 暴力:找到占用的端口号,并且找到对应的进程,杀死该进程,释放被占有的端口号
(1)打开 cmd命令窗口,输入netstat -ano|findstr 端口号 命令,查询该端口对应的TCP号; 编辑
(2)输入taskkill /t /f /im TCP号,来关闭被占用的端口
application.properties 配置文件内容如下:
基本介绍
SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。
简化开发,在spring轻量级的基础上再次简化开发,主要体现在
-
坐标(创建工程,并在
pom.xml配置文件中配置所依赖的坐标 )Spring程序中的坐标需要自己编写,而且坐标非常多SpringBoot程序中的坐标是我们在创建工程时进行勾选自动生成的 -
web3.0配置类
Spring程序需要自己编写这个配置类。这个配置类大家之前编写过,肯定感觉很复杂SpringBoot程序不需要我们自己书写 -
配置类
Spring/SpringMVC程序的配置类需要自己书写。而SpringBoot程序则不需要书写。
==注意:基于Idea的
Spring Initializr快速构建SpringBoot工程时需要联网。==

选择 Spring Initializr ,用来创建 SpringBoot 工程
以前我们选择的是 Maven ,今天选择 Spring Initializr 来快速构建 SpringBoot 工程。而在 Module SDK 这一项选择我们安装的 JDK 版本。
SpringBoot快速入门
开发步骤
SpringBoot 开发起来特别简单,分为如下几步:
-
创建新模块,选择Spring初始化,并配置模块相关基础信息
-
选择当前模块需要使用的技术集
-
开发控制器类
-
运行自动生成的Application类
知道了 SpringBoot 的开发步骤后,接下来我们进行具体的操作
1.创建新模块
-
文件→新建→创建新模块

- 选择
Spring Initializr,用来创建SpringBoot工程
以前我们选择的是 Maven ,现在选择 Spring Initializr 来快速构建 SpringBoot 工程。而在 Module SDK 这一项选择我们安装的 JDK 版本。
1.0↓

2.0↓

==注意:打包方式这里需要设置为 Jar==
区别:服务器url不同,阿里云模板没有指定父类工程<parent></parent>
spring有
选中 Web,然后勾选 Spring Web
因为我们需要开发一个 web 程序,使用到了 SpringMVC 技术

经过以上步骤后就创建了如下结构的模块,它会帮我们自动生成一个 Application 类,而该类一会再启动服务器时会用到

==注意:==
-
在创建好的工程中不需要创建配置类
-
创建好的项目会自动生成其他的一些文件,而这些文件目前对我们来说没有任何作用,所以可以将这些文件删除。
可以删除的目录和文件如下:
-
.mvn -
.gitignore -
HELP.md -
mvnw -
mvnw.cmd
-
2 .创建 Controller
在 com/example/springboot_demo1包下创建 BookController ,代码如下:
@RestController
@RequestMapping("/books")
public class BookController {
@GetMapping("/{id}")
public String getById(@PathVariable Integer id){
System.out.println("id ==> "+id);
return "hello , spring boot!";
}
}
3 启动服务器
可能会出现的问题:端口被占用

解决方法:
1. 暴力:找到占用的端口号,并且找到对应的进程,杀死该进程,释放被占有的端口号
(1)打开 cmd命令窗口,输入netstat -ano|findstr 端口号 命令,查询该端口对应的TCP号;

查询到端口号后,在关闭对应的TCP号即可关闭端口。
(2)输入taskkill /t /f /im TCP号,来关闭被占用的端口

这样就成功关闭了被占用的端口号。
简便方法:
找到占用8080端口号的活动进程,记住PID(进程id),右击打开任务管理器,查看→选择列→勾选PID→找到对应数字的进程→右键结束进程
2. 温柔:修改自身的端口号
当遇到这个问题时,我们可以创建一个新的端口号来重新执行SpringBoot项目,创建新的端口号其实很简单,只需要在application.yaml或者application.properties文件下配置即可。
* 一般会将tomcat的默认端口号修改为80。80端口号是http协议的默认端口号。
* 好处:在访问时,就不用输入端口号

运行 SpringBoot 工程不需要使用本地的 Tomcat 和 插件,只运行项目 com.itheima 包下的 Application 类,我们就可以在控制台看出如下信息

4 进行测试
使用测试工具apifox来测试程序

使用 SpringBoot 进行开发,使整个开发变得很简单,那它是如何做到的呢?
要研究这个问题,我们需要看看 Application 类和 pom.xml 都书写了什么。先看看 Applicaion 类,该类内容如下:
@SpringBootApplication
public class SpringbootDemo1Application {
public static void main(String[] args) {
SpringApplication.run(SpringbootDemo1Application.class, args);
}
}
这个类中的东西很简单,就在类上添加了一个 @SpringBootApplication 注解,而在主方法中就一行代码。我们在启动服务器时就是执行的该类中的主方法。
再看看 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>
<!--指定了一个父工程,父工程中的东西在该工程中可以继承过来使用-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.0</version>
</parent>
<groupId>com.itheima</groupId>
<artifactId>springboot_01_quickstart</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--JDK 的版本-->
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--该依赖就是我们在创建 SpringBoot 工程勾选的那个 Spring Web 产生的-->
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<!--这个是单元测试的依赖,我们现在没有进行单元测试,所以这个依赖现在可以没有-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!--这个插件是在打包时需要的,而这里暂时还没有用到-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
SpringBoot工程快速启动
后端可以将 SpringBoot 工程打成 jar 包,该 jar 包运行不依赖于 Tomcat 和 Idea 这些工具也可以正常运行,只是这个 jar 包在运行过程中连接和我们自己程序相同的 Mysql 数据库即可。这样就可以解决这个问题
打包
由于我们在构建 SpringBoot 工程时已经在 pom.xml 中配置了如下插件
jar -jar springboot_01_quickstart-0.0.1-SNAPSHOT.jar
所以我们只需要使用 Maven 的 package 指令打包就会在 target 目录下生成对应的 Jar 包。
==注意:该插件必须配置,不然打好的
jar包也是有问题的。==
打成jar包,可以在无idea、无Tomcat的前提下进行前端测试



可能出现这个问题:
Description:
Web server failed to start. Port 8080 was already in use.
Action:
Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.

问题原因:
8080端口被占用,关闭正在使用这个端口的程序(我之前在idea上启动了服务器,关闭即可)
重新在cmd命令窗口运行,启动成功,在Apifox上运行测试

启动
进入 jar 包所在位置,在 命令提示符 中输入如下命令
jar -jar springboot_01_quickstart-0.0.1-SNAPSHOT.jar

感受了 SpringBoot 程序,回过头看看 SpringBoot 主要作用是什么,就是简化 Spring 的搭建过程和开发过程。
原始 Spring 环境搭建和开发存在以下问题:
-
配置繁琐
-
依赖设置繁琐
SpringBoot 程序优点恰巧就是针对 Spring 的缺点
-
自动配置。这个是用来解决
Spring程序配置繁琐的问题 -
起步依赖。这个是用来解决
Spring程序依赖设置繁琐的问题 -
辅助功能(内置服务器,...)。我们在启动
SpringBoot程序时既没有使用本地的tomcat也没有使用tomcat插件,而是使用SpringBoot内置的服务器。
不同配置文件
-
application.properties配置文件
现在需要进行配置,配合文件必须放在 resources 目录下,而该目录下有一个名为 application.properties 的配置文件,我们就可以在该配置文件中修改端口号,在该配置文件中书写 port ,Idea 就会提示,如下

application.properties 配置文件内容如下:
server.port=80

-
application.yml配置文件
删除 application.properties 配置文件中的内容。在 resources 下创建一个名为 application.yml 的配置文件,在该文件中书写端口号的配置项,格式如下:
server:
port: 81
==注意: 在
:后,数据前一定要加空格。==
而在 yml 配置文件中也是有提示功能的,我们也可以在该文件中书写 port ,然后 idea 就会提示并书写成上面的格式

-
application.yaml配置文件
删除 application.yml 配置文件和 application.properties 配置文件内容,然后在 resources 下创建名为 application.yaml 的配置文件,配置内容和后缀名为 yml 的配置文件中的内容相同,只是使用了不同的后缀名而已
application.yaml 配置文件内容如下:
server:
port: 82
启动服务,在控制台可以看到绑定的端口号

873

被折叠的 条评论
为什么被折叠?



