当前位置: 首页 > article >正文

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

简单介绍:

在之前我们创建了一个基础的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://www.kler.cn/a/18327.html

相关文章:

  • 综合案例铁锅炖(CSS项目大杂烩)
  • 由播客转向个人定制的音频频道(1)平台搭建
  • 【ARM Coresight OpenOCD 系列 5 -- arp_examine 使用介绍】
  • (十)Python字典基本操作
  • 【大数据学习 | HBASE】hbase的读数据流程与hbase读取数据
  • 【NLP】使用 PyTorch 从头构建自己的大型语言模型 (LLM)
  • wiringPi常用函数
  • 使用 ChatGPT 辅助学习——为自己找一个老师
  • docker部署SpringBoot项目
  • 【sop】基于灵敏度分析的有源配电网智能软开关优化配置(Matlab代码实现)
  • Linux 安装 NFS 实现文件目录共享
  • SpringBoot创建和使用
  • RESTful风格(个人笔记)
  • MySQL事务:原理、类型和使用场景
  • taro小程序中如何引入css_moudle?配置后不生效的解决方法
  • HTML 中的常用标签用法
  • Vue中的路由设置
  • 学习大数据有推荐的么
  • 某程序员哀叹:二本计算机,4年开发,年包才40多万。二本真的不如985/211吗?
  • linux命令之journalctl详解
  • 全国职业院校技能大赛网络建设与运维赛项赛题(五)
  • Python突破某网游游戏JS加密限制,进行逆向解密,实现自动登录
  • 前端架构师-week4-通用脚手架命令Command类封装
  • 扫雷,咱就是一扫一大片(C语言完美递归版)
  • (一)zookeeper实战——初识zookeeper
  • FlashFXP快捷键