目录
基本介绍
SpringBoot快速入门
开发步骤
1.创建新模块
2 .创建 Controller
3 启动服务器
可能会出现的问题:端口被占用
解决方法:
1. 暴力:找到占用的端口号,并且找到对应的进程,杀死该进程,释放被占有的端口号
(1)打开 cmd命令窗口,输入netstat -ano|findstr 端口号 命令,查询该端口对应的TCP号; 编辑
(2)输入taskkill /t /f /im TCP号,来关闭被占用的端口
简便方法:
2. 温柔:修改自身的端口号
4 进行测试
SpringBoot工程快速启动
打包
可能出现这个问题:
问题原因:
启动
不同配置文件
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
启动服务,在控制台可以看到绑定的端口号