万事开头难—第一个SpringBoot应用

学习开发SpringBoot之初遇到的第一个拦路虎竟然是创建SpringBoot应用,网上选她千百度,蓦然回首发现网上的教程多多少少都存在问题。什么问题呢?首先都是都是创建DEMO,其次创建过程中遇到的选项含义不仅没有解释,而且很多选项选错了。为避免大家走同样的弯路,在这里重新编写了一篇基础教程。

废话少说,下面正式开始教程:

1. 第一步干什么呢?当然是打开IDEA啦

首先打开IDEA,点击 +Create New Project. 开始创建一个新项目:

打开IDEA新建项目

下面出现了创建新项目的第一步,请按照下图上的步骤选择即可:

选择初始化工具及模板选择

简单介绍一下上面的选项:

    1. 选择左侧的Spring Initializr选项:Spring Initializr是官方提供的一个用来初始化的工具,通过在Spring Initializr的界面窗口上简单的配置,就能轻松完成Spring Boot的项目的初始化。
    1. 选择顶部的Project SDK选项:通过这个项目可以选择项目运行JDK版本环境,这里默认读取的是当前用户的JAVA_HOME环境变量,如果这里没有任何的默认选项,请参考前面JDK环境搭建的章节。
    1. 选择顶部的Initializr Service URL:选择生在项目模板的服务器地址,这里选择的是默认选项Default : https://start.spring.io,(如果默认的模板无法满足需求还可以选择Custom从指定的链接加载模板,动手能力强的同学还可以选择本地搭建spring Initializr服务器,这部分知识不是本节重点,这里不做拓展了,大家可以自行百度)还有一点需要注意,idea默认使用https://start.spring.io提供的在线模板,所以建议执行后续步骤的过程中保证网络畅通。
    1. 以上选择完成后,点击Next按钮进入下一步。

2. 第二步 填写项目的元数据(Project Metadata)

所谓元数据也就是基本信息的意思,包含Group、Artifact、Name、Package等信息,如下图所示,下面将详细讲解如何填写这些信息:


填写项目元数据页面

从上图可以看到,需要填写及选择的内容一共10项:

  • Group:创建项目的组织或团队的唯一标识,通常是com + 公司名称,按照国际惯例,这里建议所有的字母都使用小写
  • Artifact:是项目的唯一的标识符,实际对应项目或系统的名称。按照国际惯例,这里建议所有的字母都使用小写
  • Type:这里一共有4个选项,分别是Maven ProjectMaven POMGradle ProjectGradle Config,其中Maven ProjectMaven POM两个选项用于创建Maven方式管理的Java项目,区别是Maven Project帮我们生成整个完整的工程结构,而Maven POM选项只会在工程目录下生成pom.xml,没有src等等结构,所以对于新手建议选择Maven Project。下面的两个选项Gradle ProjectGradle Config用于创建Gradle方式管理的Java项目,和前两个一样,Gradle Project帮我们生成整个完整的工程,Gradle Config初始化的项目只有build.gradle配置文件。据了解国内很多大公司的项目都是使用Maven管理的,所以对于初学者建议选择Maven Project
  • Language:语言也提供了3个选项,分别是JavaKotlinGroovy,Java应该不用多做介绍了,KotlinGroovy都是基于Java平台的面向对象的编程语言,业界有人认为Kotlin将会渠道Java的霸主地位,Kotlin提供了互操作性,代码安全性和准确性比较受程序员们的欢迎,大家不用也没关系,可以查资料了解一下这两种语言,丰富知识的宽度
  • Packaging:提供了两种打包方式JarWar,其中Jar的打包方式用于在服务器直接运行或提供给其他系统集成调用。War一般用于在Tomcat平台部署。这里大家根据自己的部署环境和用途进行选择
  • Java Version:提供了81115三个选项,大家根据自己的Java环境自行选择就好
  • Version:项目或系统的版本号,后续可以修改,这里建议使用默认值
  • Name:项目或系统的名称,可以是Artifact。(填写Artifact项完成后,初始化工具会自动使用Artifact的内功填充)
  • Description:项目功能及用途的介绍,作为Jar包对外提供时,使用者可以通过 Description快速了解项目的能力。这个信息可以后期修改,可以直接跳过。
  • Package:项目或系统的唯一标识,可以自定义,默认是Group + Artifact。(当填写GroupArtifact两项完成后,初始化工具会自动使用这两项的内容填充)

以上信息填写完成后,请点击右下角的Next按钮进入下一步。

3. 第三步 选择项目的依赖(Dependencies)

项目的依赖选项多到让人眼花缭乱措手不及,该从哪里下手呢?选哪个合适呢?

1)选择Spring Boot版本

Spring Boot版本选择界面

如果上图所示,Spring Boot的版本也有很多,如果大家没有必须要选择的版本,建议选择使用最新的版本,截止到2020年10月8日,最新的Spring Boot稳定版本是2.3.4,注意请尽量不要选择使用 (SNAPSHOT) 结尾版本,这些版本相当于开发版本,会存在一些未知的Bug,建议大家选择稳定版本,避免踩坑。

2)选择初始依赖库

选择初始依赖库的页面

界面共分为三列:左列是分类, 中间列是待选择的依赖库,右列是已选择的依赖库。
在这里需要说明一下,依赖库在项目创建完成后也可以添加,这里可以直接点击Next按钮跳过。
下面我说一下我常用的一些依赖库:

类别 依赖库
Developer Tools Spring Boot DevTools
Web Spring Web
SQL Spring Data JPA

下面详细说一下这些依赖库的作用:

  • Spring Boot DevTools:提供了热部署的能力,能节省很多程序员开发过程中调试部署的时间,强烈推荐使用。网上也有很多关于热部署原理的文章,建议大家拓展阅读一下
  • Spring Web:Spring MVC核心组件之一,常用于用开发网络接口服务,使用Apache Tomcat作为运行环境。是开发网络服务的必要组件
  • Spring Data JPA:Spring Data JPA是Spring,基于Hibernate开发的一个JPA框架,提供了更简单更优雅的访问数据库的方式,如果在项目中使用了关系型数据库,建议勾选上。
    完成选择依赖库以后,请点击右下角的Next按钮进入下一步。

4. 第四步 选择初始化位置

初始化位置选择页面

这也是初始化项目的最后一步了,填写项目的名称以及选择文件的初始化位置。

  • Project name:项目或系统名称,可以是在第二步填写的Artifact,同时这个也是项目源代码文件夹的名称,建议使用驼峰命名法,提升可读性。
  • Project location:选择项目代码初始化的位置,点击右侧的...按钮选择具体的路径。
    以上信息填写完成后,请点击右下角的Next按钮完成项目初始化。

5. 最后

项目创建完成后的目录结构

完成项目创建后您将看到以上目录结构,其中XXXApplication是项目的入口。
项目运行控制菜单

在窗口的右上方找到上图的几个按钮,点击中间的绿色三角按钮,即可运行项目。
在运行的过程中,您可能会遇到Failed to configure a DataSource: 'url' attribute is not specified and no embedd的错误:
运行错误截图

请参考我前面的文章Spring Boot应用报错:Failed to configure a DataSource: 'url' attribute is not specified and no embedd来解决此问题。
项目运行成功的截图

当您解决完所有问题后,再次运行后看到以上的截图中的两行日志,那么恭喜您,您的第一个Spring Boot项目创建完成了。

写在最后:大家在创建项目的过程中,如果遇到任何问题,请在评论区留言交流。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352