写给我的朋友们的SpringBoot入门(一)

创建一个Spring Boot工程

1.首先我们打开了IntelliJ IDEA Ultimate,并选择Create New Project


001.PNG

2.在New Project的左边栏选择Spring Initializer


002.PNG

这个时候我们要把Project SDK设置为系统中安装的JDK
选择New...,而后选择JDK
003.PNG

选择系统中安装的JDK目录(你的电脑中安装的可能不一样,可能你在用Java11或者12,这个没有关系,选择JDK目录就好)


004.PNG

3.点击OK之后,可以发现这个窗口变成了类似这样,然后我们Next
005.PNG

4.进入到Spring Boot工程信息的设置
这一步非常关键,请仔细看。最初我们看到的给出的例子是这样的
006.PNG
  • Group:因为Java,Kotlin和Scala等基于JVM的语言的源代码是一个个Package组织起来的。每一个Package在一个工程中肯定都是唯一的。而Gradle(和Maven)作为一个全世界范围内通用的依赖管理系统,它约定了所有的团队以域名反写作为包的前缀,例如com.taobao。因为域名在世界上是唯一的,这样如果所有的团队都以域名反写作为包的前缀,那么各个团队所开发的代码就不会引起冲突了。你现在暂时未曾向Maven中央库上传自己的开源代码,所以你可能不知道向Maven中央库上传代码是强制要求使用域名反写作为所有包的前缀的。如果不开源自己的项目,那么这个GroupID并不是强制的,但是我十分建议你遵循这样一个以域名反写作为Group的前缀的约定。
  • Artifact:这个相当于项目名称,根据你们自己的项目自行决定。
  • Type:请你选择Gradle Project
  • Language:工程的编程语言。因为你现在不会Kotlin,所以请选择Java
  • Packaging:用于指定项目部署的时候的打包形式,现在在你不知所以然的时候,请选择Jar
  • Java Version:用于指定编译生成的.class字节码所支持的最低Java版本,为了最大兼容性考虑,请选择8
  • Version:是当前工程的版本,可以遵循惯例的“三段式”——主版本.次要版本.小版本。主版本用于发布整个项目的重大更新,例如Tensorflow2的发布,Python 3的发布。次要版本用于发布新特性。小版本一般用于修复Bug。但是版本号的规范各个团队都有自己的约定,请自行决定。不是那么重要。
  • Name:指的是Spring Initializer所产生的Spring Boot启动类的类名前缀,默认是跟随Artifact的命名。
  • Description无意义,可以随意
  • Package:是Spring Boot启动类所在的包。我们可以看到是默认是用Group + Artifact,这一项不建议改变。
    根据上面所介绍的各项配置,我们来填写今天这样一个工程的信息。
    007.PNG
  • Group:com.xxcore.code.jvm.spring
    因为我有一个域名是xxcore.com,然后我现在就用com.xxcore作为我的包名的前缀,后面的code.jvm.spring是我自己对代码的分类,这个不重要,你可以根据自己的情况和团队的约定。但是我强烈建议你一定要用域名反写作为前缀,如果你没有域名,可以用Github,比如我的Github账号是BriskCore,那么groupID就可以用io.github.briskcore.code…………
  • Artifact:api
    在这里项目名称选择了api因为我估计我和你都是想构建一个RESTful api服务。你们团队可以用项目名称作为Artifact
  • Type:请你选择Gradle Project
  • Language:工程的编程语言。因为你现在不会Kotlin,所以请选择Java
  • Packaging:用于指定项目部署的时候的打包形式,现在在你不知所以然的时候,请选择Jar
  • Java Version:用于指定编译生成的.class字节码所支持的最低Java版本,为了最大兼容性考虑,请选择8
  • Version:在这里我用了2019.7.1-SNAPSHOT,这个不重要,在工程中还可以修改。所以请你随意。
  • Name,Description,Package,都用自动生成的,建议不要修改。
    然后我们点击next
    5.进入Spring Boot依赖设置页面


    008.PNG

这一步也请你跟着我做
我们首先在右上角版本选择处下拉,选择版本。可以选择正式发布版,例如现在的2.1.6,以后可能会有2.2.x。也可以选择“里程碑”版本,就是命名中带有M的。但是不建议选择预览版(SNAPSHOT)。现在我们选择2.2.0 M4

009.PNG

请勾选如下依赖项

  • Developer Tools下的Spring Boot DevTools


    010.PNG
  • Web下的如下三项


    011.PNG
  • 因为我们至少要用到MySQL,所以请选择SQL下面的如下三项
    012.PNG

    确保都选好之后就可以点击Next了
    6.工程目录选择
    013.PNG

    ProjectName:是IntelliJ IDEA的项目名称,请与Artifact一致
    Project location是你的工程在本地磁盘中存放的位置,你不用和我一样选择同样的目录,但是最后一个子目录请一定是Artifact和ProjectName,例如我这里的D:\IdeaProjects\api最后一个子目录名称就是我们的Artifact和ProjectName——api
    然后我们就可以点击Finish。可能弹出这样一个对话框,这个是询问你该工程目录现在不存在,它会被IDEA新建的提示。你可能没有这样一个对话框,那一般也是正常的。
    014.PNG

7.在主界面里关于Gradle相关设置
IDEA会自动弹出这样的设置窗口


015.PNG

这个是IDEA用来导入Gradle工程的,请勾选Use auto-import

016.PNG

这样IDEA就会自动监视配置文件build.grade的改变,自动更新
而后我们选择OK,IDEA就会从互联网上下载必要的依赖,这是一个比较慢的事情
018.PNG

019.PNG
020.PNG

上图便是正在下载依赖,下面有一个小小的进度条。这时候,请你耐心等待

8.依赖下载完成!


021.PNG

当我们看到IDEA没有正在进行的任务,上图的Build:Sync中的所有任务图标都是OK时,我们的依赖也就下载完成了。
9.关于Gradle配置窗口
我们可以看到上图右边打开了一个工具栏


023.PNG

这个工具栏可能不会自己弹出来。事实上,这个是我点开的,他的开关在右边有一个竖着的Gradle文字
这是一个非常有用的窗口。可以在里面执行Task。他的主要用法我们留到下一次再说(我有点累了)。这个工具箱的左上角有一个像圈圈一样的图标,这个是使Gradle刷新依赖的。如果你因为网络问题或者后期添加了什么依赖,他都会重新解析工程根目录下的build.gradle配置文件,然后从互联网上下载依赖。如果你的build.gradle编写有误,那么这个刷新会失败,你可以根据IDEA的提示去百度解决。
10.这是Spring Boot启动类,我们需要做出如下修改

022.PNG

我们可以看到这个启动类位于com.xxcore.code.jvm.spring.api包中。刚好就是我们的Group + Artifact组成的包。名字叫做ApiApplication是我们的Artifact——"api"改变成大驼峰式而后在其后加上Application组成的。
在@SpringApplication注解中加入如下的exclude参数
@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
此时我们的启动类应该改变成

package com.xxcore.code.jvm.spring.api;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
public class ApiApplication
{

    public static void main(String[] args)
    {
        SpringApplication.run(ApiApplication.class, args);
    }

}

一个默认的Hello world Controller和bootRun task

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