JavaWeb入门程序解析(Spring官方骨架、配置起步依赖、SpringBoot父工程、内嵌Tomcat)

3.3 入门程序解析

关于web开发的基础知识,我们可以告一段落了。下面呢,我们在基于今天的核心技术点SpringBoot快速入门案例进行分析。

3.3.1 Spring官方骨架

之前我们创建的SpringBoot入门案例,是基于Spring官方提供的骨架实现的。

Spring官方骨架,可以理解为Spring官方为程序员提供一个搭建项目的模板。

在这里插入图片描述

我们可以通过访问:https://start.spring.io/ ,进入到官方骨架页面

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Spring官方生成的SpringBoot项目,怎么使用呢?

  • 解压缩后,就会得到一个SpringBoot项目工程

在这里插入图片描述

在这里插入图片描述

打开pom.xml文件,我们可以看到springboot项目中引入了web依赖和test依赖

在这里插入图片描述

结论:不论使用IDEA创建SpringBoot项目,还是直接在官方网站利用骨架生成SpringBoot项目,项目的结构和pom.xml文件中内容是相似的。

3.3.2 起步依赖

在我们之前讲解的SpringBoot快速入门案例中,同样也引用了:web依赖和test依赖

在这里插入图片描述

spring-boot-starter-web和spring-boot-starter-test,在SpringBoot中又称为:起步依赖

而在SpringBoot的项目中,有很多的起步依赖,他们有一个共同的特征:就是以spring-boot-starter-作为开头。在以后大家遇到spring-boot-starter-xxx这类的依赖,都为起步依赖。

起步依赖有什么特殊之处呢,这里我们以入门案例中引入的起步依赖做为讲解:

  • spring-boot-starter-web:包含了web应用开发所需要的常见依赖
  • spring-boot-starter-test:包含了单元测试所需要的常见依赖

spring-boot-starter-web内部把关于Web开发所有的依赖都已经导入并且指定了版本,只需引入 spring-boot-starter-web 依赖就可以实现Web开发的需要的功能

在这里插入图片描述

Spring的官方提供了很多现成的starter(起步依赖),我们在开发相关应用时,只需要引入对应的starter即可。

官方地址:https://docs.spring.io/spring-boot/docs/2.7.2/reference/htmlsingle/#using.build-systems.starters

在这里插入图片描述

每一个起步依赖,都用于开发一个特定的功能。

举例:当我们开发中需要使用redis数据库时,只需要在SpringBoot项目中,引入:spring-boot-starter-redis ,即可导入redis开发所需要的依赖。

3.3.2 SpringBoot父工程

在我们之前开发的SpringBoot入门案例中,我们通过maven引入的依赖,是没有指定具体的依赖版本号的。

在这里插入图片描述

为什么没有指定版本号,可以正常使用呢?

  • 因为每一个SpringBoot工程,都有一个父工程。依赖的版本号,在父工程中统一管理。

在这里插入图片描述

3.3.3 内嵌Tomcat

问题:为什么我们之前书写的SpringBoot入门程序中,并没有把程序部署到Tomcat的webapps目录下,也可以运行呢?

原因呢,是因为在我们的SpringBoot中,引入了web运行环境(也就是引入spring-boot-starter-web起步依赖),其内部已经集成了内置的Tomcat服务器。

我们可以通过IDEA开发工具右侧的maven面板中,就可以看到当前工程引入的依赖。其中已经将Tomcat的相关依赖传递下来了,也就是说在SpringBoot中可以直接使用Tomcat服务器。

在这里插入图片描述

当我们运行SpringBoot的引导类时(运行main方法),就会看到命令行输出的日志,其中占用8080端口的就是Tomcat。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

DevExpress WPF中文教程 - 为项目添加GridControl并将其绑定到数据

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

springboot+vue+mybatis销售评价系统+PPT+论文+讲解+售后

随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,销售评价系统当然也不能排除在外。销售评价系统是以实际运用为开发背景,运用软件工程开发方法,采用Java…

Three.js 实战【2】—— 船模型海上场景渲染

停止了好久没有更新three这方面的文章了,从上两年还是vue2,一下子都换到vue3了,下面这些three都是基于vue3来进行开发的哈,先看一下这篇文章实现的效果哈。其中关于模型什么的资源都放在Git上了 初始化场景 安装three就直接通过n…

GuLi商城-商品服务-API-品牌管理-品牌分类关联与级联更新

先配置mybatis分页: 品牌管理增加模糊查询: 品牌管理关联分类: 一个品牌可以有多个分类 一个分类也可以有多个品牌 多对多的关系,用中间表 涉及的类: 方法都比较简单,就不贴代码了

000007 - HDFS DataNode

HDFS DataNode 1. DataNode工作机制2. DataNode的数据完整性3. 掉线时限参数设置 1. DataNode工作机制 (1)一个数据块在 DataNode 上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度…

【C++】类与对象的学习(中)

目录 一、默认成员函数: 二、构造函数: 1、定义: 2、理解: 三、析构函数: 1、定义: 2、理解: 四、拷贝构造: 1、定义: 2、理解: 五、运算符的重载&…

夏令营入门组day5

目录 一. 城市距离 二. 史莱姆 一. 城市距离 (1)思路 每次询问,对于每一个点都判断与下一个点是否为临近点会超时,因此预处理,预先判断每一个点的临近点,然后将花费存入前缀和数组,这样在每次询…

对redis进行深入学习

目录 1. 什么是redis?1.1 为什么使用redis作为缓存?1.1.0 数据库(MySQL)与 redis1. 存储介质不同(408选手应该都懂hh)2. 数据结构优化3. I/O模型差异4. CPU缓存友好性5. 单线程与多线程差异6. 持久化与缓存…

哈尔滨网站建设注意哪些问题

在进行哈尔滨网站建设时,需要注意以下几个问题: 首先,要明确网站的定位和目标。网站建设的首要任务是明确网站的定位和目标,确定网站所要传达的信息和服务内容,以及面向的目标用户群体。哈尔滨作为一个具有浓厚地域特色…

Linux脚本:如何编写bash脚本统计多个相关进程的CPU占用率,以此统计系统中指定多进程的总的CPU使用率

目录 一、需求 二、分析 三、脚本示例 1、创建脚本 2、编写脚本 3、脚本编写注意事项 (1)CPU占用率列 (2)多进程实例 (3)权限 四、运行脚本 1、给予脚本可执行权限 2、运行脚本 五、优化脚本 …

linux live555编译以及rtsp服务器搭建

一、live555源码 下载:点击跳转 二、编译 1、往文件 config.linux里的 COMPILE_OPTS 添加以下两个参数 -DNO_STD_LIB 和 -DNO_OPENSSL1 ,修改后如下: COMPILE_OPTS $(INCLUDES) -I/usr/local/include -I. -O2 -DNO_STD_LIB -DNO_OPENSS…

大数减法c++

这里写目录标题 key key 检查减数和被减数的大小&#xff0c;大的放前&#xff0c;小的放后确定结果是正数&#xff0c;还是负数&#xff0c;即符号位从低位开始减如果a[i]<b[i]&#xff0c;则向高位借1当10&#xff0c;a[i1]–;a[i]10 #include <iostream> #include…

【python】OpenCV—Coordinates Sorted Clockwise

文章目录 1、需求介绍2、算法实现3、完整代码 1、需求介绍 调用 opencv 库&#xff0c;绘制轮廓的矩形边框&#xff0c;坐标顺序为右下→左下→左上→右上&#xff0c;我们实现一下转化为熟悉的 左上→右上→右下→左下 形式 按照这样的顺序组织边界框坐标是执行透视转换或匹…

采用反相正基准电压电路的反相运算放大器(运放)

采用反相正基准电压电路的反相运算放大器(运放) 采用反相正基准电压电路的同相运算放大器&#xff08;运放&#xff09; 设计目标 输入ViMin输入ViMax输出VoMin输出VoMax电源电压Vcc电源电压Vee电源电压Vref-5V-1V0.05V3.3V5V0V5V 设计说明1 此设计使用具有反相正基准的反…

gite+picgo+typora打造个人免费笔记软件

文章目录 1️⃣个人笔记软件2️⃣ 配置教程2.1 使用软件2.2 node 环境配置2.3 软件安装2.4 gite仓库设置2.5 配置picgo2.6 测试检验2.7 github教程 &#x1f3a1; 完结撒花 1️⃣个人笔记软件 最近换了环境&#xff0c;没有之前的生产环境舒适&#xff0c;写笔记也没有劲头&…

盒须图boxplot 展示第6条线

正常情况下,盒须图是有5条线的,但是实际产品场景是需要6条线,看了下echarts官网,没看到可配置的地方,只能自己骚操作了,效果图如下: 重点:用两条x轴,第6条线挂在第二条x轴上,且第二条x轴不展示。 option = {...,xAxis: [{type: category,data: [Class1, Class2, Cl…

Web前端网页设计与制作(想起来哪里写哪里版)

本文技术栈基于HtmlCssJavaScript制作web页面以及功能实现的部分设计与展示&#xff0c;实际的网站开发会涉及更多的细节&#xff0c;包括但不限于用户认证、数据库存储、前端框架的使用、响应式设计、安全性措施等。 废话不说&#xff0c;直接看源码 1.index 首页&#xff1a…

【漏洞复现】泛微e-cology9 WorkflowServiceXml SQL注入漏洞

文章目录 前言漏洞描述影响范围 漏洞复现nuclei脚本 安全修复 前言 泛微协同管理应用平台e-cology是一套兼具企业信息门户、知识文档管理、工作流程管理、人力资源管理、客户关系管理、项目管理、财务管理、资产管理、供应链管理、数据中心功能的企业大型协同管理平台。 漏洞…

算法学习day16——刷题(仍然是数组)

一、图片平滑器 图像平滑器 是大小为 3 x 3 的过滤器&#xff0c;用于对图像的每个单元格平滑处理&#xff0c;平滑处理后单元格的值为该单元格的平均灰度。 每个单元格的 平均灰度 定义为&#xff1a;该单元格自身及其周围的 8 个单元格的平均值&#xff0c;结果需向下取整…

使用llama-cpp-python制作api接口

文章目录 概要整体操作流程技术细节小结 概要 使用llama-cpp-python制作api接口&#xff0c;可以接入gradio当中&#xff0c;参考上一节。 llama-cpp-python的github网址 整体操作流程 下载llama-cpp-python。首先判断自己是在CPU的环境下还是GPU的环境下。以下操作均在魔搭…