找往期文章包括但不限于本期文章中不懂的知识点:
个人主页: 我要学编程程(ಥ_ಥ)-CSDN博客
所属专栏: JavaEE
目录
[SpringBoot 相关介绍与解惑](#SpringBoot 相关介绍与解惑)
[SpringBoot 项目的创建](#SpringBoot 项目的创建)
[通过 官方提供的网页 来创建](#通过 官方提供的网页 来创建)
[通过 IDEA 来创建](#通过 IDEA 来创建)
[SpringBoot 项目的介绍](#SpringBoot 项目的介绍)
[第一个Hello World程序](#第一个Hello World程序)
SpringBoot 相关介绍与解惑
从今天开始,我们就真正地进入了JavaEE的学习了,前面学习的一切知识都只是为JavaEE做基础,而JavaEE主要是学习框架。今天我们就来学习SpringBoot框架。在正式学习SpringBoot之前,先来了解几个概念:Spring是什么?SpringBoot是什么?Spring Framework又是什么?以及三者之间的关系是什么?框架是啥?
先来解释一下框架的概念:
我们在日常生活中,见到盖房子时,都会先建立一个大致的框架,然后再去进行细致砌房屋;还有在写作文或者一篇文章时,都会先构建出其大体的思路(思维导图).... 这些都是属于框架。框架,可以理解为一个简易的成品,我们建立起框架之后,只需在原本的基础上进行砌墙以及粉刷工作即可。同理,我们在编写一个网页时,也只需将框架搭好,然后再进行各种砌墙以及粉刷工作即可。这就大大减少了咱们程序员重复造轮子的工作,节省了大量的时间。
Spring Framework:在最早期的时候,只有 Spring Framework 这一个框架,因此为了方便,就将 Spring Framework 简称为 Spring,但是后续随着框架越来越多,Spring 家族的成员也是越来越多,但还是有不少人将Spring Framework 看成是 Spring。因此,我们需要看具体的上下文开区分到底是指Spring Framework 还是 Spring家族。
Spring:其既可以代指 Spring 家族,也是可以代指 Spring Framework的。
SpringBoot:SpringBoot 是 Spring 家族中的一员。
我们也可以看一下现如今的Spring家族:
知道了这些概念之后,可能会有小伙伴奇怪:为什么我们不学Spring呢?而是先学SpringBoot呢?如今的,Spring家族成员虽然非常多,但是我们主要还是从Spring Framework 开始学习,但是Spring Framework还是过于"笨重",对于我们初学者并不是很友好,因此诞生了SpringBoot,其的出现就是为了简化Spring Framework对于网页开发的复杂程度。可以简单理解为SpringBoot是Spring Framework 进行了进一步的封装,更为简单地让我们使用。具体如下图所示:
SpringBoot 项目的创建
SpringBoot 项目的创建分为两种方式:
通过 官方提供的网页 来创建
1、先在浏览器中搜索 Spring 找到 Spring Home 或者 直接输入 https://spring.io/
2、找到 projects,点击最下方的 Spring Initializr
3、进入界面之后,按照下面的流程填充对应的信息即可创建:
创建SpringBoot项目的流程:选择 Maven 来构建项目,选择 Java 语言,选择 SpringBoot 的版本,填充项目信息,选择打包方式,选择 Java 版本,添加依赖。
注意:
1)在选择SpringBoot的版本时,一定要选择稳定版本,不要选择开发版本。snapshot 的中文意思为 快照 ,这里我们理解为开发版本。
2)我们在创建完成时,也可以先观察一下这个项目是否为我们所需要的项目(有没有创建错):
4、在创建完成之后,我们可以用IDEA去找到浏览器的本地存储,并打开即可。
上述创建项目的方式太过繁琐,因此我们后续创建SpringBoot项目都是使用IDEA来创建。
通过 IDEA 来创建
注意:IDEA的版本最好是专业版,社区版需要下载插件,而且这个插件也是需要付费的,因此我们直接使用专业版即可。如果是在校学生的话,可以直接申请专业版的,当然我们也可以在网上自行选取别的方式来使用专业版。
1、File -> New -> Project:
2、Spring Boot -> 初始化项目的信息:
3、选择对应的SpringBoot版本,以及添加依赖,最后创建即可:
注意:创建SpringBoot项目时,选择的SpringBoot版本与Java的版本要相互对应才行。
SpringBoot 3.x,需要Java17或更高的版本,SpringBoot 2.x 支持 Java8 - Java17。我们的项目使用的是Java17,既可以创建SpringBoot 2.x ,也可以创建SpringBoot 3.x。这样才能确保Spring Boot项目 对 Java 版本的兼容。
SpringBoot 项目的介绍
创建完SpringBoot项目之后,我们就可以来观察项目的相关文件以及代码目录了。
pom.xml文件
注意:
1、这里的父项目我们可以看到是 Spring Framework,也进一步证明了 SpringBoot 是对 Spring Framework 的进一步封装,而父项目就是用来简化Spring Boot项目的配置。这里可以理解为我们前面的继承知识,子类继承父类之后,父类相关的属性子类直接就可以使用,这里就是将相对复杂的配置给到了父项目,而在子项目中就不需要考虑这么多的问题了,直接使用即可。
2、这里pom文件中的内容并不只怎么多,还有一些URL相关的,这些与我们的项目没有直接的关联,可以直接删掉就行。
项目目录介绍
static:静态资源文件夹,比如前期学的 js、css、html 等静态文件所在之处,不需要服务器数据进行绑定的页面。
templates:模版资源文件夹,主要存放动态模板文件,比如JSP、Freemarker、Thymeleaf等需
要服务器动态渲染数据的文件。
第一个Hello World程序
进入JavaEE的学习之后,我们不再是像之前那样运行的结果全部在一个输出框中,而是在浏览器中来访问,也就是使用浏览器来进行交互。我们创建出一个SpringBoot项目之后,包路径下都会自带一个启动类以及一个启动方法。
注意:启动类是与注解有关,而与类名无关。这里之所以被称为是启动类,主要是由于这里存在一个@SpringBootApplication,至于这个类的名字,我们可以随意取。
当我们启动了启动类的main方法时,我们就可以在网络中来进行访问了。
接下来,我们就来学习怎么输出Hello World:
1、先找到对启动类所在的包,右击选择 New -> Java Class:
2、输入类名HelloController(最好后面带有Controller结尾,后续再学习):
3、编写JavaSE阶段学习的Hello World即可。
4、在类上方加上注解:@RestController,并在方法上方加上注解:@RequestMapping。
java
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "Hello World";
}
}
5、找到启动类,并运行。
6、打开浏览器,在地址栏中输入 **http://127.0.0.1:8080/hello 或者 http://localhost:8080/hello,**回车即可。
经过上述步骤就会有下面的结果:
我们仔细观察会发现,JavaEE阶段的代码都是需要在JavaSE阶段的基础上加上注解的。
注意:
1、SpringBoot内置了Web服务器,即Tomcat,Web服务器负责接收来自客户端(比如浏览器)的 HTTP 请求,并返回相应的 HTTP 响应,因此我们在访问SpringBoot项目时,就是使用的http协议。而Tomcat的工作端口默认是8080,因此这里也是使用8080来访问。
2、如果不加上注解就是普通类,加上注解之后,就变成了请求响应类。
3、我们在启动了SpringBoot项目之后,会发现其是一直处于运行中的,并没有进程结束的标志,这是因为启动的SpringBoot项目是一个服务端,而服务端是一直处于运行状态的。当我们修改了服务端的代码之后,一切都得重新启动服务才能继续访问修改的部分。
这里我们简单的学习了SpringBoot项目的创建与编写代码,后续我们在来详细地学习SpringBoot中的注解。
常见错误以及解决方法
找不到主类或者无法加载主类:
上图中,代码啥的都没有问题,但程序就是运行不起来。
如果我们仔细观察的话,会发现main目录下的java文件夹的颜色与普通文件夹的颜色并不差别,也就是说这里的java文件夹是一个普通的文件夹,但是我们需要的是源文件的根目录。因此得修改java文件夹为源文件的根目录。
有两种解决方案:
方案一:
1、找到需要修改的文件夹,右击,找到 Mark Directory as:
2、选择需要修改为啥样的文件夹。例如,这里的java文件夹是需要修改为源文件根目录,因此点击 Sources Root。
方案二:
1、找到 File -> Project Structure:
2、找到 Modules 右侧的 Mark as,与方案一的选择是一致的:
3、点击右下方的 apply 与 OK 即可。
好啦!本期 初始JavaEE篇 ------ 快速上手 SpringBoot 的学习之旅 就到此结束啦!我们下一期再一起学习吧!