SpringBoot——入门程序的简单介绍

news/2024/7/3 2:42:53

简单介绍:

在之前我们创建了一个基础的SpringBoot的程序,可以看到,我们只是启动了一个Java程序,但是它启动了一个Tomcat的服务器。其实在这里面他还启动了很多的服务,只不过这些服务我们都没有用到,我们就来看看他是怎么启动的,并且启动的时候都发生了什么。

当然,我们并不会太深入的介绍,只是简单的看一下它的基本流程。

SprigBoot的程序优点:

1、默认导入起步依赖(简化依赖配置):

之前我们看了,我们只是创建了一个Spring Boot的程序框架,但是我们就可以直接启动了,这就是它内部帮我们已经做了一些默认的配置,有一种开箱即用的效果。

2、自动配置(简化常用工程相关配置):

并且在之前我们启动项目的时候,我们并没有做任何的的配置,包括服务器我们没有配置,MyBatis没有配置,但是不影响我们的使用,之前我们没有配置的时候,我们需要手动的引入Tomcat的插件信息,然后我们进行一些相关的配置,比如配置端口号,配置配置信息位置,配置虚拟路径之类的,但是在这里我们什么都不需要做,就可以做到开箱即用。

3、辅助功能(内置服务器……):

在我们启动的时候,我们只是启动了一个Java程序,我们甚至连Pom文件都没有写,我们没有导入依赖,配置Tomcat的插件,这就是说明他已经帮助我们内置了一部分的插件,也可以说它已经整合了一部分必须的配置,才能做到如此的丝滑和易用。

控制台信息:

其中最直观看到的就是我们的控制台上的信息,这些就是我们SpringBoot程序启动的时候的消息日志,其中有这么几条需要我们注意一下:

 

他先去扫描了一下有没有MyBatis的Mapper,然后他去启动了一个Tom才的服务器,在8080端口,路径是空,但是回想一下,我们在创建的时候并没有手动的去导入Tomcat的插件吧,之前我们在Spring开发的时候,我们手动的在Pom文件中写入了一个Tomcat的插件,这里肯定也是需要的,关键就在于Pom文件中的内容:

  

我们打开Maven的依赖项管理,可以看到它里面已经有了一个叫做 spring-boot-starter-web的依赖坐标,那么这个坐标是在什么时候导入的呢?还记得在我们创建项目的时候勾选的拿一些东西吗,那就是决定了你的Pom文件中默认导入的坐标,我们勾选了SpringWeb相关的内容,那么他就会帮我们导入着一些的依赖,我们就不用再去手动导入了。那么说如果一开始没有勾选,但是我们后期又需要这个依赖了,那么也可以通过直接在Pom文件中写入的方式去引入依赖,就和我们之前是一样的了。

在之前我们配置Tomcat服务器的时候,我们是吧程序放在了服务器上运行,现在就好像是我们把Tomcat内置在了我们的程序中,看上去有点矛盾,但是内部的思想是这样的。我们的Tomcat是用Java编写的,那么也就是说Tomcat运行的时候是一个Java的程序,那么本质上跟我们运行一个Java类是没有区别的,那么既然这是一个Java类,我们把Tomcat的类对象交给Spring容器进行管理,是不是也是可以的?你这么一想,我把我们的项目放在Spring容器中,Tomcat也在Soring容器中,那么Spring把我们的项目放在Tomcat上运行,也不是不可以吧。

目录结构:

看完了控制台信息,我们再来看目录结构:

我们在看文件系统的时候,重点看src目录下的内容,其中com.spring是我们的根路径,其实这个文件并不是重要的,重要的是里面的一个以Application结尾的类,这个类叫做引导类,这里先记住它的名字,待会我们会详细的介绍这个类里面的内容以及它的作用。

resources是配置文件路径,里面的static是放置静态资源的地方,一般我们会把html或者静态资源放在里面,template也是一样的。

application.properties是配置文件,我只说了是配置文件,但是并没有说是谁的配置文件,这很重要,因为后期我们在写配置的时候,我们可以把所有的配置都写在这个里面,包括Tomcat的,MyBatis的,MyBatisPlus的,所有我们能写的配置都写在这里面,具体是如何做到的,我们后面会慢慢的详解。

test是用来做测试的,在后面的讲解测试的时候我们会比较详细的介绍这个类的作用和玩法。

总结: 

我们简单的介绍了一下SpringBoot在启动的时候控制台信息的内容,以及我们SpringBoot的目录结构,之后我们还会介绍一个最重要的文件:pom.xml文件,这个文件才是SpringBoot目录的核心内容。


http://lihuaxi.xjx100.cn/news/1115764.html

相关文章

UNIAPP实战项目笔记63 当前用户查询收货地址的前后端实现

UNIAPP实战项目笔记63 当前用户查询收货地址的前后端实现 总体思路 当前登陆的时候收货地址( token ) header:{ token:true } 前端: 后端: 1.设计数据库(新建一个收货地址表) 收货地址表,需要和user表关联 [字段:用户id] 2.创建一个接口 查询收货地址接口文档 1.1 接口功能 …

【STL】模拟实现vector(详解)

文章目录 前言vector的模拟实现一,搭建框架二,实现构造函数三,构造的其他方式传统写法1.拷贝构造2. 重载赋值操作符3. 使用迭代器构造4. 初始化为N个val的vector 现代写法1. 拷贝构造2. 赋值重载 四,实现vector相关函数1. reserve…

UDP 协议详解

UDP (User Datagram Protocol) 是在 OSI 七层模型中的传输层上的一种协议。它和 TCP 类似是用来传输数据的,但是 UDP 更加简单、高效、灵活,适用于对数据传输速度要求较高,但对可靠性要求不高的场景,例如游戏、音频、视频等实时通…

常用的python gpu加速方法

在使用 PyCharm进行机器学习的时候,我们常常需要自己创建一些函数,这个过程中可能会浪费一些时间,在这里,我们为大家整理了一些常用的 Python加速方法,希望能给大家带来帮助。 在 Python中,我们经常需要创建…

工程监测无线中继采集发送仪 指示灯功能说明及接口定义

工程监测NLM5无线中继采集发送仪 指示灯功能说明及接口定义 指示灯功能说明 标识 名称 状态 描述说明 备注说明 CHG 正在充电 常亮 正在充电 DON 充电完成 常亮 已充满 POW 电源指示 常亮 外部电源已连接 仅用于指示是否连接了外部电源 熄灭 无外部电源 SIG 空 RUN 运行状态 闪…

C++多线程编程实践:从基础到实例的全面指南

C 基础知识 九 线程和多线程 一、线程基础知识1. 进程和线程的概念2. 多线程的优点和使用场景3. 线程的生命周期4. 线程的状态5. 线程的同步和互斥5.1 线程同步5.2 线程互斥 6. 代码示例 二、C11线程库1 C11线程库的概念和特性2 线程库中的关键类和函数3 使用线程库创建和控制线…

Linux危险命令

rm -rf 命令 该命令可能导致不可恢复的系统崩坏。 rm -rf / #强制删除根目录下所有东西。rm -rf * #强制删除当前目录的所有文件。rm -rf . #强制删除当前文件夹及其子文件夹。fork 炸弹 :() { :|:& };:不太好理解可以转换成 bomb() {bomb|bomb& }; bomb一旦执行…

如何使用 AppArmor 来保护应用程序和敏感数据

AppArmor 是一种应用级别的访问控制(ACL)工具,可以限制进程访问文件和目录的权限,从而保护应用程序和敏感数据的安全。下面介绍如何使用 AppArmor 来保护应用程序和敏感数据: 确认 AppArmor 是否安装: 在…