Idea+Maven+springboot+Mybatis 创建web项目教程(1):环境搭建与配置

前言:

最近在学springboot,本来的顺序应该是从spring开始,奈何上手困难,因此从springboot开始先了解,打算再翻过去学习spring。
跟着慕课的一个小项目练习,我自己用到的版本是Idea2020.01.07,电脑win10,maven是idea自带,jdk11。
整个项目应该是:

Idea+Maven+springboot+Mybatis

下面开始记录过程:

一、创建一个maven项目

在 idea中:
在这里插入图片描述

1.new 一个maven项目。

选择 maven-archetype-quickstark这种项目是以jar包方式提供输出,构建项目最快速。(archetype意思是原型)

以前没有 springboot 的时候,可能更多的会选择 maven-archetype-webapp,创建的项目是以 war 包方式部署在 tomcat 等容器里的。

在这里插入图片描述

2.配置:
  • groupid 和 artifactId 被统称为“坐标”。是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个 id 去查找。
  • groupid 一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为 org、com、cn 等等许多。

举个 apache 公司的 tomcat 项目例子:这个项目的 groupId 是 org.apache ,它的域是org(因为tomcat是非营利项目),公司名称是 apache,artigactId 是 tomcat。

创建好。
在这里插入图片描述

这个过程中会下载一些东西来创建这个工程,可以看到过程,基本上就是很多jar包。

在这里插入图片描述

虽然下面仍然在下插件,但是已经可以看到,构建成功了。

这里提一句:

Maven这个工具好就好在,以前你要做项目,一个一个的依赖jar包,要去网上搜,要匹配版本不然会报错,下好了你得一个一个引入,放到对应的位置,而现在,就是这一键操作。(具体我还没有单独学习过,这是快速开始的简单理解,感觉类似于python的pip命令?)

那么可以看到,出现了一个Pom.xml 文件,xml文件就是一系列的配置信息,pom是project object management的缩写,就是项目对象管理。

在这里插入图片描述

右下角显示还在下插件,等一等,速度很慢,这应该是用国外源的通病,似乎可以在哪里设置源换成国内的镜像,不过现在我还是乖乖等吧。

结束之后,自动配置已经好了,pom.xml文件里面显示了一些信息。

二、构建项目目录

接着,我们看构建好的目录:

在这里插入图片描述

  1. 我们将上面的java包右键,marked directory as sources root 标记目录为源根(英文里面是sources root)

在这里插入图片描述

也就是说,我们指定这个java路径下面装的是我们项目的源代码

  1. 然后将下面的 test 右键标记为,测试源 根。(英文里面是 test sources root,用了汉化以后还看起来怪怪的)

  2. 接下来我们还需要一个资源文件,在main目录下面右键新建一个路径:

在这里插入图片描述

  1. 然后将其标记为 resources root,资源根

然后我们可以看到,在源码下面,有一个 App.java 文件,打开看看:

在这里插入图片描述

是一个helloworld。我们可以执行一下。

在这里插入图片描述

执行成功。

三、引入SpringBoot依赖包来构建web项目

以前,我们构建一个Web项目的做法(我是在eclipse里),要new出一个web项目,要配置xml,一步一步导包,集成tomcat,然后写一个导航index,写一个servlet(?),然后开始运行,在浏览器访问默认的端口,能够显示一个helloworld。

那么现在利用 springboot ,我们就不用这样了,因为一切操作都改进成为了在 xml 里面的配置,也就是给他命令,他帮你执行,至于这些命令的指导,我们需要去 springboot 的官方文档查看。

https://www.springcloud.cc/spring-boot.html

在这里,目录11可以看到,正好是指示了我们使用Maven进行构建的方法,如下图:

在这里插入图片描述

可以在下面这张图对比看看,配置的标签应该放的对应位置。

我们把 parent 标签里的内容都来复制过来。

在这里插入图片描述

xml 里面有各种标签。
spring-boot-starter 翻译过来是 spring-boot 场景启动器

spring-boot-starter 后面跟的单词就是场景
比如说后面跟web,就是导入web场景的所有依赖。
这里跟的是parent。

parent顾名思义就是父标签,理解成可以对子项目的公共依赖部分进行配置;或者说是 spring-boot-starter-parent(控制版本信息),以后我们导入依赖默认就不需要写版本。

我们把这段 parent 标签粘贴进去,位置就在version标签之下就可以。

然后还需要依赖的标签,网页的文档继续向下看,如图所示:

在这里插入图片描述

文档也给出了解释,上面我们也说了。

spring-boot-starter-web就是web的场景,自动帮我们引入了web模块开发需要的相关jar包。

这段复制粘贴的位置就是在 dependencies 标签里面的子标签,可以看到构建的时候已经有一个dependency了,就是 Junit 的引入,我们粘贴的位置就和这个子标签平行。

然后在两个需要的依赖都添加之后,刷新一下。

在这里插入图片描述

此时可以看到右下角在显示:

在这里插入图片描述

也就是说,xml文件读取了,他开始帮我们加载需要的东西,会有很多jar包,也会比较慢,下载完能看到复制进去的标签部分字体颜色从红变蓝了。

结束之后,查看左边我们的项目目录,可以看到 external library 里面,外部的这些资源:

在这里插入图片描述

除了本身的jdk(我是11)之外多出来很多对应的包。

这就是我们以前需要手动做的内容,现在一键都由 springboot 帮我们 boot 出来了。

现在我们可以再来看看我们的 pom.xml 这个核心的配置文件

从上到下的标签基本是:

  1. groupid和artifactid,就是我们最开始新建项目设定的,以及下面的版本号
    在这里插入图片描述

  2. 项目的名字,还有默认的url
    在这里插入图片描述

  3. 刚才说过的父pom,发现了吗,字面来看,我们的项目在上面配置了有对应的三个标签,这里配置的parent也有三个标签,也就是把这个项目作为了我们的父pom,可以理解为我们指定用了springboot本来的一个模板。
    在这里插入图片描述

  4. properties,属性,指定了编码,以及maven的编译源和编译目标
    在这里插入图片描述

  5. 依赖,指定了两个,一个是用上面的springbootstarterparent的一个web项目,有了这个标签,会把这个对应的jar包下载下来;一个是用了junit这个第三方
    在这里插入图片描述

四、启动springboot,搭建完成

此时我们再次回到App.java里来。

  1. 在class前加上一个注解:
@EnableAutoConfiguration

@EnableAutoConfiguration 注解的作用,见名知意,就是开启自动配置。
(具体这个东西的实现原理,和spring也有关,似乎也是面试的考点。)

  1. springboot的自动化配置,就是
    在main方法里面去启动:
SpringApplication.run(App.class,args);

此时我们再运行:

在这里插入图片描述

可以看到,在输出helloworld之后,系统并没有停止运行,而是继续在进行一系列操作
在这里插入图片描述

这些工作里就包括,他帮我们启动了一个tomcat容器,而且默认在 8080 端口 listen 了。

这个时候我们可以打开浏览器,输入localhost:8080去查看:

在这里插入图片描述

虽然没有内容,但是说明我们已经有一个工程在8080端口了。

进阶一步:
再给工程增添一些色彩,SpringMVC是用来解决web的控制层问题,(最早项目肯定简单的 javaweb 是多是用JSP 、Servlet + JDBC )

但是严格按照MVC的分层模式开发,就要解决控制层的问题,而 springboot 也可以直接帮我们搞定 controller 的问题。

在第一个EnableAutoConfiguration的注解下面再加上一行:

@RestController

接着,我们就简单定义一个方法,在输出一个helloword:

@RequestMapping("/")
public String hello(){
    return "hello world";
}

这个注解和 springmvc 一致,表示用户访问根目录的时候,输出一个helloworld,到web的控制台。

这个时候重新运行程序,再打开8080端口,可以看到:

在这里插入图片描述

到这里,一个web应用就已经搭建完成 。

前端没写,数据库也还没连,但是已经能看了,下一篇是:连接Mybatis

猜你喜欢

转载自blog.csdn.net/weixin_42092787/article/details/106961228