(一)SpringBoot3---尚硅谷总结

示例Demo:

1、我们先来创建一个空工程:

2、我们通过Maven来创建一个Module:

JDK版本需要选择17以及以上,如果没有的话你就下载一个:

3、让此Maven项目继承父项目:

       所有的Springboot项目都必须继承自spring-boot-starter-parent

<!-- 所有的Springboot项目都必须继承自spring-boot-starter-parent -->
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.5</version>
</parent>

这里注意,如果这段代码你是复制的中文文档里面的,一定要看清楚这个版本号,中文文档上的版本号对应的版本可能根本就不存在!!!

4、导入web开发的场景启动器

<dependencies><!--web开发的场景启动器,所有和Web相关的功能就都引入进来了 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>

所有和Web相关的功能就都引入进来了: 

 5、创建Springboot项目的主入口程序:

@SpringBootApplication //这是一个SpringBoot引用
public class MainApplication {public static void main(String[] args){SpringApplication.run(MainApplication.class,args);}
}

6、举例测试:

//@ResponseBody注解用于标识一个控制器方法,
// 可以将该方法的返回值作为响应报文的响应体,响应到浏览器@RestController //等同于:@Controller + @ResponseBody
public class HelloController {@GetMapping("/hello")public String hello(){return "Hello,SpringBoot 3";}
}

@ResponseBody:注解用于标识一个控制器方法,可以将该方法的返回值作为响应报文的 

                          响应体,响应到浏览器

@RestController:复合注解

7、Springboot还能够简化部署:直接打个包即可

                加入应用打包插件:

<!-- SpringBoot官方提供的应用打包插件-->
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>
7.1 通过Maven把应用进行打包:把项目打成可执行的jar包
               clean和package居然可以多选 

7.2 打包成功:把项目打成可执行的jar包

7.3 运行成功
  •    运行前记得把在idea运行的此项目停掉,要不然会有端口冲突:
  •    
  •    我们直接可以在装有JDK17+的服务器上运行了,都不需要安装tomcat(Springboot有内嵌的tomcat),直接回车:

8、Springboot还能够简化运维:

        修改配置只需在外部创建一个application.properties文件,在这个文件中修改好后,

        重新运行此jar包即可:

8.1 直接在同目录下创建一个空的配置文件,比如说我要修改端口号:

8.2 然后重新运行此jar包:端口号已经修改成功了

9、Springboot特点总结:

1. 简化整合

导入相关的场景,拥有相关的功能。场景启动器

默认支持的所有场景:Developing with Spring Boot

  • 官方提供的场景:命名为:spring-boot-starter-*
  • 第三方提供场景:命名为:*-spring-boot-starter

场景一导入,万物皆就绪

  •  springboot官方提供的应用启动器会有前缀:spring-boot-starter-***
  •  第三方提供场景:命名为:****-spring-boot-starter

2. 简化开发

无需编写任何配置,直接开发业务

3. 简化配置

application.properties

  • 集中式管理配置。只需要修改这个文件就行 。
  • 配置基本都有默认值
  • 能写的所有配置都在: Common Application Properties

4. 简化部署

打包为可执行的jar包。

linux服务器上有java环境。

5. 简化运维

修改配置(外部放一个application.properties文件)、监控、健康检查。

.....

10、Spring Initializr 创建向导

选择我们当前的springboot需要哪些场景:

利用Spring Initializr 创建的项目相对于一键创建好了整个项目结构:

 11、Springboot的便捷特性都依赖于这两个机制:


                                        依赖管理机制、自动配置机制

思考:

1、为什么导入starter-web所有相关依赖都导入进来?

  • 开发什么场景,导入什么场景启动器。
  • maven依赖传递原则。A-B-C: A依赖B,B依赖C,那么A就拥有B和C
  • 导入场景启动器。 场景启动器就会自动把这个场景的所有核心依赖jar包全部导入进来  

例如:你把web开发的场景启动器spring-boot-starter-web导入进来了,那么所有和Web相关的功能就都引入进来了:

2、为什么我们导入场景启动器的时候,版本号都不用写:

  • 每个boot项目都有一个父项目spring-boot-starter-parent:
  • parent的父项目是spring-boot-dependencies,在spring-boot-dependencies中管理了相关的依赖以及版本:
  • 父项目 版本仲裁中心,把所有常见的jar的依赖版本都声明好了。
  • 比如:mysql-connector-j,我们只需要写依赖,不需要管版本:

3、自定义版本号

  • 利用maven的就近原则,如果我自己声明了,就用我自己的版本号,没有声明,就用父项目里提供的版本号:

3.1、直接在当前项目properties标签中声明父项目用的版本属性的key:

3.2、直接在导入依赖的时候声明版本:

4、第三方的jar包

  • springboot父项目中没有管理的第三方jar包,则需要自行声明版本号,例如:
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.16</version>
</dependency>

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

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

相关文章

OSI七层协议和五层协议

【 1 】互联网协议交互的基础 硬件设备 光缆 【 2 】OSI七层协议 物理层&#xff08;Physical Layer&#xff09;&#xff1a;负责传输比特流&#xff08;0和1&#xff09;以及物理连接的建立和维护。数据链路层&#xff08;Data Link Layer&#xff09;&#xff1a;提供可…

Dubbo分层设计之Exchange层

前言 Dubbo 框架采用分层设计&#xff0c;自上而下共分为十层。Exchange 层位于倒数第三层&#xff0c;它在 协议层 的下方、数据传输层的上方。 第一次看源码的时候&#xff0c;大家应该都会有一个疑问&#xff1a;都已经有 Transport 层了&#xff0c;为啥还要定义 Exchange…

游戏分组 - 华为OD统一考试

OD统一考试 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 部门准备举办一场王者荣耀表演赛&#xff0c;有 10 名游戏爱好者参与&#xff0c;分为两队&#xff0c;每队 5 人。 每位参与者都有一个评分&#xff0c;代表着他的游戏水平。为了表演赛尽可…

解密PGSQL数据库引擎:探索数据世界的秘密

目录 1、引言 1.1 什么是PGSQL数据库引擎 1.2 数据库引擎的重要性 1.3 解密PGSQL数据库引擎的意义 2、PGSQL数据库引擎的基础知识 2.1 什么是数据库引擎 2.2 PGSQL数据库引擎的历史和发展 2.3 PGSQL数据库引擎的特点和优势 2.4 PGSQL数据库引擎的架构和组件 3、PGSQL…

无法解析服务器的名称或地址/Wsl/0x80072eff/win10 WSL2问题解决Wsl 0x800701bc/Wsl:0x80041002

无法解析服务器的名称或地址 和 Wsl/0x80072eff 1.连VPN&#xff0c;推荐的VPN如下。(如一直显示无法连接&#xff0c;则推荐使用VPN) Anycast加速器 (any4ga.com) 优点&#xff1a;无限GB 缺点&#xff1a;较贵&#xff0c;通过银行卡充值9折后的价格是每月45元左右 …

如何获取一个德国容器

1.注册discord账号 discord注册网址:https://discord.com/ 下面是容器的discord邀请链接 https://discord.com/Discord邀请链接:https://discord.com/invite/jVMSWrchC4 2.进入discord群聊点击link 在点击网址,这个网址每星期都会变就是图中的② 3.进入容器网址,进入界面…

shell简单截取curl GET返回的body消息体

目录 需求背景&#xff1a; 示例&#xff1a; 解决方式&#xff1a; 需求背景&#xff1a; 用shell解析 curl命令GET到的消息体&#xff0c;获取body消息体里的某个字段的值,只是个简单的示例&#xff0c;可以在此基础上更改满足自己的需求 示例&#xff1a; curl一个API…

Jenkins-Pipeline

Pipeline 1 安装插件 2 新建一个 Pipline 工程 3 配置Pipeline 脚本 agent的使用可以参考这个文档 pipeline {agent anystages {stage(Build) { steps {echo Building project...}}stage(Test) { steps {echo Testing project...}}stage(Deploy) { steps {echo Deploying …

【安装VMware Tools】实现Vmware虚拟机和主机之间复制、粘贴内容、拖拽文件

https://www.bilibili.com/video/BV1rN411277B/?spm_id_from333.788.recommend_more_video.6&vd_sourcefb8dcae0aee3f1aab700c21099045395 https://blog.csdn.net/wxqian25/article/details/19406673 待解决方案&#xff1a; 重新下载ubuntu&#xff0c;然后按照 https://…

瑞_Java开发手册_(六)工程结构

文章目录 工程结构的意义(一) 应用分层(二) 二方库依赖(三) 服务器 &#x1f64a;前言&#xff1a;本文章为瑞_系列专栏之《Java开发手册》的工程结构篇&#xff0c;主要介绍应用分层、二方库依赖、服务器。由于博主是从阿里的《Java开发手册》学习到Java的编程规约&#xff0c…

美国智库发布《用人工智能展望网络未来》的解析

文章目录 前言一、人工智能未来可能改善网络安全的方式二、人工智能可能损害网络安全的方式三、人工智能使用的七条建议四、人工智能的应用和有效使用AI五、安全有效地使用人工智能制定具体建议六、展望网络未来的人工智能&#xff08;一&#xff09;提高防御者的效率&#xff…

c++基础3

一 、构造函数的初始化列表 可以指定成员对象的初始化方式 构造函数的初始化列表是在 C 中用于初始化成员变量的一种机制。它在构造函数的参数列表之后&#xff0c;构造函数的函数体之前使用&#xff0c;并使用冒号 : 分隔。初始化列表可以用于给成员变量赋初值&#xff0c;而不…