SpringBoot小结

目录

基本介绍

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 类,而该类一会再启动服务器时会用到

 ==注意:==

  1. 在创建好的工程中不需要创建配置类

  2. 创建好的项目会自动生成其他的一些文件,而这些文件目前对我们来说没有任何作用,所以可以将这些文件删除。

    可以删除的目录和文件如下:

    • .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 包运行不依赖于 TomcatIdea 这些工具也可以正常运行,只是这个 jar 包在运行过程中连接和我们自己程序相同的 Mysql 数据库即可。这样就可以解决这个问题

打包

由于我们在构建 SpringBoot 工程时已经在 pom.xml 中配置了如下插件

jar -jar springboot_01_quickstart-0.0.1-SNAPSHOT.jar

所以我们只需要使用 Mavenpackage 指令打包就会在 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 的配置文件,我们就可以在该配置文件中修改端口号,在该配置文件中书写 portIdea 就会提示,如下

 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

启动服务,在控制台可以看到绑定的端口号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/4408.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络-数据链路层上篇

目录 一、数据链路层概述 二、封装成帧 三、差错检测 &#xff08;一&#xff09;奇偶校验 &#xff08;二&#xff09;循环冗余校验CRC 四、可靠传输 &#xff08;一&#xff09;停止-等待协议SW &#xff08;二&#xff09;后退N帧协议GBN &#xff08;三&#xff…

AutoSAR系列讲解(入门篇)4.6-BSW的Watchdog功能

一、架构与术语解释 前面都挺难的吧&#xff1f;实践出真知&#xff0c;后面实践篇的时候&#xff0c;大家应该就能明白了。这一节就来讲个简单的功能------看门狗。看门狗想必大家应该都再熟悉不过了吧&#xff0c;主要就下面三层结构&#xff0c;简单明了&#xff0c;这节确实…

mac 文件批量重命名001开始

mac 文件批量重命名001开始&#xff0c;怎么操作&#xff1f;我们平时在整理办公文件的时候&#xff0c;经常需要对文件的名称进行修改&#xff0c;将文件修改为数字形式的名称&#xff0c;例如001、002、003、004......这样的形式&#xff0c;尤其是某项工作涉及非常多文件的时…

进程的基本概念解读

目录 什么是进程 PCB OS中用于管理控制的数据结构 进程控制块PCB的作用 进程控制块中的信息 前趋图 背景 作用 表示 示例 程序的顺序执行 程序顺序执行的特征 程序的并发执行 程序的并发执行的特征 例题解读 进程的三种基本状态 进程的三种状态之间的转换 进…

Spring面试题--Spring的bean的生命周期

这个问题比较困难&#xff0c;设计到了spring的底层&#xff0c;但是通过这个的学习&#xff0c;可以帮助我们了解Spring容器是如何管理和创建bean实例&#xff0c;以及方便调试和解决问题。 BeanDefinition bean的定义信息&#xff0c;Spring容器在进行实例化时&#xff0c;…

初学mybatis(二)CRUD操作及配置解析

学习回顾&#xff1a;初学mybatis&#xff08;一&#xff09; 一、namespace 1、将上面案例中的UserMapper接口改名为 UserDao&#xff1b;2、将UserMapper.xml中的namespace改为为UserDao的路径 .3、再次测试 结论&#xff1a; 配置文件中namespace中的名称为对应Mapper接口或…

常州工学院数字图像处理及应用2022-2023第二学期实验报告 + 期末

《数字图像处理及应用》 课程 实验报告书 专业班级&#xff1a; 21计二 姓 名&#xff1a; 王梓权 学 号&#xff1a; 21030228 指导教师&#xff1a; 徐则中 计算机信息工程学院 《数字图像处理》实验 实验教学目的和要求 《数字图像处理》课程内容是一门综合…

Linux 用户名称高亮和最近路径显示

1、通常情况下&#xff0c;Linux中的路径名称会不断叠加显示&#xff0c;如下图&#xff0c;这样看起来会很长。 2、为了设置路径只是当前最近的文件路径&#xff0c;先进入自己的家目录&#xff0c;然后进入.bashrc&#xff1a; 3、在.bashrc文件中的最后一行加入以下内容…

【Data Studio 2.1.0连接openGauss2.1.0】

Data Studio 2.1.0连接openGauss2.1.0 一、实验环境说明二、配置客户端接入方式三、Data Studio2.1.0连接openGauss数据库 一、实验环境说明 openGauss2.1.0版本Data Studio 2.1.0 版本 二、配置客户端接入方式 【以下操作是omm用户进行】 修改配置文件pg_hba.conf&#xf…

tiny tool - get_file_path_name_by_drop_file

文章目录 tiny tool - get_file_path_name_by_drop_file概述工程效果收获的知识点vs2022工程, 必须自己设置对话框可以接受文件的风格vs2022建立的工程, 默认是unicode编码, 设置剪贴板数据时, 必须要设置为unicode的格式, 否则剪切板中只有第一个字符工程主要实现END tiny too…

【Linux】线程同步(互斥锁和读写锁)

概念 线程同步是指多个线程之间协调和管理彼此的执行顺序&#xff0c;以避免竞态条件和不确定的结果。线程同步的目的是确保共享资源的正确访问和保护临界区的完整性。 作用 避免竞态条件&#xff1a;当多个线程同时访问和修改共享资源时&#xff0c;可能会导致竞态条件的发生…