Spring Boot 的由来
相信大家都听说过 Spring 框架。
Spring 从诞生到现在一直是流行的 J2EE 开发框架。随着 Spring 的发展,它的功能越来越强大,随之而来的缺点也越来越明显,以至于发展到后来变得越来越臃肿,使用起来也非常的麻烦。到后来由于过于强调配置的灵活性,有时即使只为了加入一个简单的特性,而需要相当多的 XML 配置,从而被人们诟病为 ” 配置地狱 ”!
后来许多优秀的服务端框架涌现出来,比如基于 JavaScript 的 nodeJS,基于 Python 的 Django,Flask,Tornado 框架。都由于其使用简单的特性被越来越多的开发者采用。
Sprint Boot 就是为了应对这些框架的挑战而出现的,它彻底改变了 Spring 框架臃肿的现状。使得 J2EE 的框架变得简单起来,目前越来越多的公司和项目选择了它。
Spring Boot 最新的版本是 2.x,本文我们就来介绍它的安装与配置,快速创建你的第一个 Spring Boot 工程,享受她的优雅与强大。
Spring Boot 的特性
Spring Boot 的主要有以下几个杀手级特性,可以大大减少学习与使用的复杂性,让我们更多地关注业务,提升开发效率:
可创建独立可运行的应用程序,打包后仅一个 jar 包,运行即可。
内置应用服务器 Tomcat,Jetty 等,无需部署。
零 XML 配置,彻底摆脱 ” 配置地狱 ”。
自动配置各种第三方库,常用的第三方库引入即可用。
内置各种服务监控系统,实时观察服务运行状态。
创建 Spring Boot 工程
我们废话不多说,现在就开始介绍创建 Spring Boot 2 工程的方法,这是进行 Spring Boot 学习与开发的第一步。
方法一:通过 Idea 内置工具创建
如果你使用 IntelliJ IDEA 作为你的开发 IDE 的话,这种方式最为方便,不过前提是使用 Ultimate 版 (最终版),在 IntelliJ 的官网可以下载到(当然如果条件允许推荐购买正版)。
打开 Idea 选择创建新工程
选择导航栏中的 Spring Initializr
然后填入工程信息
注意这里有使用 Maven 还是 Gradle 的选择。我们这里既然要零 XML 配置,这里选择使用 Gradle 工程,如图。我们使用 Sprint Boot 的目的也就是简化我们的开发生活,不是吗?
添加第三方依赖
我们这里添加需要的第三方依赖。如果你第一次接触 Spring Boot,为了避免复杂性,可以选择添加以下两个依赖。其他的依赖不必担心,你可以在任何时候非常容易地添加依赖。
DevTools:是一系列开发工具配置,比如热部署。
Web: 对 Web 开发的基础支持。
完成工程创建
填入工程名和保存目录后,点击完成。
创建完工程后,会有一个 gradle 配置的一个界面,这里我们选择使用默认的 wrapper。这个选项会自动为我们下载对应版本的 gradle 进行配置和编译,无需我们自己安装配置等,非常方便。
点击 OK 后我们就成功地创建了新工程!恭喜!
方法二:通过 Spring Initializr 创建
这种方式适用于不使用 IntelliJ IDEA 和使用免费版 Idea 的同学,通过官方创建 Spring Boot 工程的网站直接创建。方法一其实也是使用这个网站作为模板来集成到 Idea 中的。
点击这里进入到这个网站 (https://start.spring.io/)
输入工程信息,并选择 Gradle 工程
输入工程的信息后,如果需要更详细的信息设置,可以点击下方的 ”More options” 按钮进行设置。
添加依赖
这里我们可以直接搜索需要的依赖进行添加,比如我们添加 Web 和 Devtools 库。
生成工程
在我们把所有信息填完后,接下来我们就可以点击页面底部的按钮(Generate Project)开始生成。
生成后会自动把工程下载到本地,我们解压后,将该工程保存到开发目录(你喜欢的任何位置都可以),然后使用 IDE 打开即可。
比如我这里使用的是 IntelliJ IDEA,打开即可。
运行工程!
至此我们的工程已经创建完毕,下面就是运行它了。我们观察工程源码包的结构,发现有一个 Hellospringboot2Application 的类,这个类就是我们服务的运行入口。运行它后,我们的服务就可以正常启动了!
总结
通过创建 Spring Boot 新工程的过程,我们就会发现它的简洁之处,不会像以前使用 Spring 那样要花费很多时间和精力去创建和配置,我们现在甚至可以在短短的两分钟之内创建好工程!后面的文章我们会深入讨论 Spring Boot 的方方面面。
我的博客中其他关于 Spring Boot 的所有文章可以点击这里找到,欢迎关注!
如果有问题可以留言,或者给我发邮件 lloyd@examplecode.cn,期待我们共同学习与成长!