创建一个Spring Boot工程
1.首先我们打开了IntelliJ IDEA Ultimate,并选择Create New Project
2.在New Project的左边栏选择Spring Initializer
这个时候我们要把Project SDK设置为系统中安装的JDK
选择New...,而后选择JDK
选择系统中安装的JDK目录(你的电脑中安装的可能不一样,可能你在用Java11或者12,这个没有关系,选择JDK目录就好)
3.点击OK之后,可以发现这个窗口变成了类似这样,然后我们Next
4.进入到Spring Boot工程信息的设置
这一步非常关键,请仔细看。最初我们看到的给出的例子是这样的
- 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,这一项不建议改变。
根据上面所介绍的各项配置,我们来填写今天这样一个工程的信息。
- 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依赖设置页面
这一步也请你跟着我做
我们首先在右上角版本选择处下拉,选择版本。可以选择正式发布版,例如现在的2.1.6,以后可能会有2.2.x。也可以选择“里程碑”版本,就是命名中带有M的。但是不建议选择预览版(SNAPSHOT)。现在我们选择2.2.0 M4
请勾选如下依赖项
-
Developer Tools下的Spring Boot DevTools
-
Web下的如下三项
- 因为我们至少要用到MySQL,所以请选择SQL下面的如下三项
确保都选好之后就可以点击Next了
6.工程目录选择
ProjectName:是IntelliJ IDEA的项目名称,请与Artifact一致
Project location是你的工程在本地磁盘中存放的位置,你不用和我一样选择同样的目录,但是最后一个子目录请一定是Artifact和ProjectName,例如我这里的D:\IdeaProjects\api最后一个子目录名称就是我们的Artifact和ProjectName——api
然后我们就可以点击Finish。可能弹出这样一个对话框,这个是询问你该工程目录现在不存在,它会被IDEA新建的提示。你可能没有这样一个对话框,那一般也是正常的。
7.在主界面里关于Gradle相关设置
IDEA会自动弹出这样的设置窗口
这个是IDEA用来导入Gradle工程的,请勾选Use auto-import
这样IDEA就会自动监视配置文件
build.grade
的改变,自动更新而后我们选择OK,IDEA就会从互联网上下载必要的依赖,这是一个比较慢的事情
上图便是正在下载依赖,下面有一个小小的进度条。这时候,请你耐心等待
8.依赖下载完成!
当我们看到IDEA没有正在进行的任务,上图的Build:Sync中的所有任务图标都是OK时,我们的依赖也就下载完成了。
9.关于Gradle配置窗口
我们可以看到上图右边打开了一个工具栏
这个工具栏可能不会自己弹出来。事实上,这个是我点开的,他的开关在右边有一个竖着的Gradle文字
这是一个非常有用的窗口。可以在里面执行Task。他的主要用法我们留到下一次再说(我有点累了)。这个工具箱的左上角有一个像圈圈一样的图标,这个是使Gradle刷新依赖的。如果你因为网络问题或者后期添加了什么依赖,他都会重新解析工程根目录下的build.gradle配置文件,然后从互联网上下载依赖。如果你的build.gradle编写有误,那么这个刷新会失败,你可以根据IDEA的提示去百度解决。
10.这是Spring Boot启动类,我们需要做出如下修改
我们可以看到这个启动类位于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);
}
}