资讯专栏INFORMATION COLUMN

Spring入门系列(一):使用IDEA创建第一个Spring Boot的Hello World项目

Euphoria / 1736人阅读

摘要:进行到这里,很多小伙伴可能心里迫切的想着赶紧启动项目。该类的代码如下步骤重新启动该项目之前启动项目的图标已经变为重启项目的图标,在浏览器中输入,如图所示页面展示出字样至此,使用创建第一个的项目已经成功

前言
Spring因其轻量级、一站式、非侵入式设计、方便集成和测试等优势,成为最受欢迎的Java EE框架之一。但Spring的配置繁琐臃肿,很多工作麻烦而重复,于是Spring Boot应运而生。凭借其极简化、快速开发、尤其适合构建微服务系统等优势,受到越来越多企业的欢迎。

IDEA,全称IntelliJ IDEA,是捷克的软件公司JetBrains开发的一款Java IDE(集成开发环境),目前也被公认为是最好的Java开发工具之一(我个人认为可以去掉之一,至少现阶段如此)。插一句题外话,JetBrains不仅开发了IntelliJ IDEA,还开发了Webstorm(前端 IDE)、PyCharm(Python IDE)、DataGrip(数据库 IDE)等等产品,被称为“JetBrains全家桶”,而我本人也是“JetBrains全家桶”的忠实拥趸,每天一边在心中默念“JetBrains全家桶大法好”一边在IDEA上畅快地书写着代码。曾经有一位同事在我面前吐槽说“IDEA除了智能一点以外,很多工作帮我们都做了以外,其余并没有什么优点”,而我想说的是,《论语·卫灵公》有曰:“工欲善其事,必先利其器”。既然一个IDE能够做到更智能一些,帮我们做的事情能更多一些,我们自己需要花费在配置、设置上的时间能更少一些,能更专注于代码本身,何尝不是一件好事呢?

同时我们可以来看一份2018年针对全球10500名Java开发者做的一项调查,调查显示有 45%的开发者以IDEA作为开发Java项目的IDE。大多数人的选择不一定是最好的,但一定是最流行的,也一定是有原因的。

新建第一个Spring Boot项目

步骤01 打开IDEA,点击“Create New Project”选项,创建一个新的工程;

步骤02 选择“Spring Initializr”这个选项,它是Spring官方提供的用来初始化一个Spring Boot项目的工具(注意:如果你的IDEA中找不到这个选项,有可能你安装的是社区版的IDEA,或者你的IDEA缺少Spring Boot相关插件);

步骤03 输入项目的基本信息,包括Group(组织Id)、Artifact(模块名称)、Type(项目构建类型)、Language(开发语言)、Packaging(最终生成包的类型)、Java Version(Java版本)、Version(项目的版本号)、Name(项目名称)、Description(项目描述)、Package(项目的包),各项基本信息输入完成后即可点击“Next”进入下一步;

其中,“组织Id”一般为公司等组织域名的反写,而对于个人项目而言,建议采用“pers(个人发起、独自完成、可分享的项目)或priv(个人发起、独自完成、非公开的私人使用的项目)+个人名”的形式;“项目构建类型”表示是使用Maven还是Gradle构建项目;“最终生成包的类型”表示是使用Jar包还是War包作为项目的最终打包方式,此处选择Jar包,后续可以在项目的配置文件中进行修改;“项目的包”的包名则是根据“组织Id+模块名称”规则自动生成,一般情况下没有必要去进行修改

步骤04 选择项目依赖,勾选项目依赖后IDEA会自动把选中的依赖添加到项目的pom.xml文件中。由于我们后续准备开发的是Web项目,所以此处勾选一级选项“Web”下的二级选项“Web”,右边的“Selected Dependencies”栏目中会显示已经选择的依赖;

步骤05 项目最终设置,这里需要填写项目的工程名和选择项目创建的路径,下方的“More Settings”中还有一些更多的设置。一般来说,这里不用修改,读者可以根据自己的需求自行修改。确认以上设置无误后,点击“Finish”按钮,一个可运行的Spring Boot项目就创建成功了!

步骤06 创建后的项目长下面这个样子。进行到这里,很多小伙伴可能心里迫切的想着赶紧启动项目。这种心情是完全可以理解的,但是在启动之前我们还是先看一看这个项目的目录结构,同时需要删除一些不需要的文件,正所谓“磨刀不误砍柴工”;

可以看到,整个项目的项目名与之前设置的相同,展开项目之后有三个文件夹和一些图标各异的文件,与项目文件夹同级别的目录下还有“External Libraries”和“Scratches and Consoles”两个模块,下面简要介绍一下各文件和模块的功能:

.idea文件夹:存放项目的一些配置信息,例如IDE的一些配置(主题、字体等)、缓存、版本控制和历史记录等信息;

.mvn文件夹:该文件夹展开有一个wrapper文件夹,其中存放maven-wrapper.jar和maven-wrapper.properties和MavenWrapperDownloader.java三个文件。在src文件夹下方的文件中,还有mvnw、mvnw.cmd两个文件。其实mvnw就是一个maven wrapper script,可以让你在没有安装maven或者maven版本不兼容的条件下运行maven的命令,mvn.cmd是执行mvnw命令的cmd入口。它的原理是在maven-wrapper.properties文件中记录你要使用的maven版本,当我们执行mvnw clean命令时,发现当前环境中的maven版本和期望的版本不一致,那么就下载期望的版本,然后用期望的版本来执行mvn命令。在实际的开发过程中,我们应该保证开发环境安装了maven且maven版本与期望版本保持一致。所以这个文件夹与下面的mvnw、mvnw.cmd两个文件均可以删除;

src文件夹:这个目录就比较熟悉了,就是用来存放源代码的文件夹。
    main是源文件夹,包括存放Java代码的“java”文件夹和存放静态资源的“resources”文件夹。在“java”文件夹中可以看到根据步骤03“输入项目的基本信息”时配置的包名而自动生成的一个包,其中含有自动生成的"StudySpringbootApplication"类,它是整个项目的入口类,通过其中的run方法启动项目;而“resources”文件夹中包含两个文件夹和一个文件,“static”文件夹默认存放静态资源也就是静态页面,“templates”文件夹默认存放视图模板也就是动态页面(需要引入官方推荐使用的Thymeleaf模板引擎组件或FreeMarker等第三方的模板引擎)。但是在目前的企业级Web应用中,前后端分离是大势所趋,视图层技术日渐式微,不过这两个文件夹Spring官方还是给予了提供;“application.properties”是一个配置文件,包含系统属性、环境变量、命令参数等信息,Spring Boot启动时默认加载该配置文件。此处建议将该配置文件由.properties格式改为.yml格式(虽然两者皆为官方推荐的格式),因为相比较而言.yml比.properties更好用,后面我会写专文进行讨论;
    test是测试文件夹,存放我们编写的测试类;

.gitignore:根据这个文件的名字就可以大致猜出它的用途,这个文件是用来忽略Git版本库控制的。即在Git中如果想忽略掉某个文件,不让这个文件提交到版本库中,这可以将这个文件加入到.gitignore的忽略规则中。不过在实际开发过程中,不推荐使用IDEA自带的Git管理工具。相比于专业的Git管理插件,它显得不是那么好用。大神们会直接采用Git命令的方式进行Git操作,而我们普罗大众一般使用拥有图形化界面的客户端进行Git操作。目前在互联网公司中比较流行的一款Git管理工具是SourceTree,不过我本人使用的是Fork(https://git-fork.com/),在下一篇文章中我会详细介绍。因为不推荐使用IDEA自带的插件进行Git管理,所以该文件也没有必要留存,我们可以将其删除;

HELP.md:这个文件即整个项目的帮助文档;

mvnw、mvnw.cmd:这两个文件之前已经说过了,此处不再赘述;

pom.xml:Maven的配置文件,主要描述了项目的Maven坐标、依赖关系、开发者需要遵循的规则、缺陷管理系统、组织、licenses以及其他所有的项目相关因素,是项目级别的配置文件;

study_springboot.iml:IDEA的工程配置文件,里面是当前项目的一些配置信息,例如历史记录、版本控制信息等;

External Libraries:即项目的外部依赖,此处的外部依赖由Maven自动导入,一般不需要操作和干预;

Scratches and Consoles:划痕和控制台,IDEA提供的一个临时的文件编辑环境,通过该环境你可以写一些临时注释和项目上下文之外的代码片段,相当于一个草稿本的功能。

现在,各文件和模块的功能我们都已经完全熟悉了,整个项目的结构层次成竹于胸。根据上述的分析对一些文件进行删除和修改之后,我们得到了一个十分清爽、简单的初始Spring Boot项目:

启动项目

步骤01 进入StudySpringbootApplication类,上一节已经说到过这个类是整个项目的入口类。通过下图所标识的五个启动入口(IDEA好像特别害怕我们不知道从哪里启动),均能调用SpringApplication的run方法从而启动项目;

步骤02 启动项目后,控制台(Console)中会打印启动日志。经过几秒钟的等待之后,控制台的打印操作会停止,并如图所示提示“Started StudySpringbootApplication in 2.814 seconds (JVM running for 4.494)”。即告诉我们,项目已经正常启动并花费了2.814秒,Tomcat 已经开启了8080端口的监听;

步骤03 此时,我们打开浏览器,输入地址 http://127.0.0.1:8080/,此时便会打开如下图所示的页面,也就是我们常说的“白页”(这个页面就叫做“白页”,并不是完全空白的页面叫做“白页”)。此页面虽然有一个大大“Error”,但并不是说我们的项目有问题或者说是启动不成功。因为我们此时的项目还没有加入任何的逻辑代码和视图,所以显示白页是十分正常的;

添加控制层

步骤01 在自动生成的包目录下,创建一个名为controller的包,并在包中创建一个名为HelloWorldController的类。该类的代码如下:

@RestController
public class HelloWorldController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello World";
    }
}

步骤02 重新启动该项目(之前启动项目的图标已经变为重启项目的图标),在浏览器中输入 http://127.0.0.1:8080/hello,如图所示页面展示出“Hello World”字样;

至此,使用IDEA创建第一个Spring Boot的Hello World项目已经成功!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74818.html

相关文章

  • 【从零入门系列-0】Spring BootHello World

    摘要:结束语非常智能化,为开发者提供大量的默认配置细节,因此在的帮助下可以快速完成项目的运行,极简入门继续看从零入门系列程序结构设计说明 环境准备 java 开发环境 JDK1.8 安装 Maven 安装,jar自动依赖及包管理工具 IDE编辑器:IntelliJ IDEA 2019 说明 本项目为从零入门示例,目标为构建一个书籍增删改查管理页,力争记录一个无java基础的程序员学习笔...

    王晗 评论0 收藏0
  • 【从零入门系列-0】Spring BootHello World

    摘要:结束语非常智能化,为开发者提供大量的默认配置细节,因此在的帮助下可以快速完成项目的运行,极简入门继续看从零入门系列程序结构设计说明 环境准备 java 开发环境 JDK1.8 安装 Maven 安装,jar自动依赖及包管理工具 IDE编辑器:IntelliJ IDEA 2019 说明 本项目为从零入门示例,目标为构建一个书籍增删改查管理页,力争记录一个无java基础的程序员学习笔...

    icyfire 评论0 收藏0
  • java | Spring Boot 体验

    摘要:大量的配置繁琐而复杂,稍有不慎项目将无法运行。配置环境将花费大量的时间和精力。结合种种原因,社区痛定思痛,所以来啦。。。。到底有多快捷方便,多说无益,体验一般就好。 Spring Boot 体验 简介 在第一次接触 Spring 你会发现其核心配置文件是一个XML格式的,所有的配置都是通过XML来实现的。大量的配置繁琐而复杂,稍有不慎项目将无法运行。配置环境将花费大量的时间和精力。很多...

    int64 评论0 收藏0
  • Spring Boot 入门

    摘要:简介简化应用开发的一个框架整个技术栈的一个大整合开发的一站式解决方案微服务,微服务架构风格服务微化一个应用应该是一组小型服务可以通过的方式进行互通单体应用微服务每一个功能元素最终都是一个可独立替换和独立升级的软件单元环境准备推荐及以上以上版 1、Spring Boot 简介简化Spring应用开发的一个框架; 整个Spring技术栈的一个大整合; J2EE开发的一站式解决方案; 2、微...

    zhaochunqi 评论0 收藏0
  • Spring Boot 2.x基础教程:快速入门

    摘要:编写一个接口创建命名为根据实际情况修改创建类,内容如下启动主程序,使用等工具发起请求,可以看到页面返回编写单元测试用例打开的下的测试入口类。 简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应...

    tigerZH 评论0 收藏0

发表评论

0条评论

Euphoria

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<