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的官网可以下载到(当然如果条件允许推荐购买正版)。

  1. 打开Idea选择创建新工程
  2. 选择导航栏中的Spring Initializr
  3. 然后填入工程信息
    注意这里有使用Maven还是Gradle的选择。我们这里既然要零XML配置,这里选择使用Gradle工程,如图。我们使用Sprint Boot的目的也就是简化我们的开发生活,不是吗?

  1. 添加第三方依赖
    我们这里添加需要的第三方依赖。如果你第一次接触Spring Boot,为了避免复杂性,可以选择添加以下两个依赖。其他的依赖不必担心,你可以在任何时候非常容易地添加依赖。
  • DevTools:是一系列开发工具配置,比如热部署。
  • Web: 对Web开发的基础支持。
  1. 完成工程创建
    填入工程名和保存目录后,点击完成。

  1. 创建完工程后,会有一个gradle配置的一个界面,这里我们选择使用默认的wrapper。这个选项会自动为我们下载对应版本的gradle进行配置和编译,无需我们自己安装配置等,非常方便。

点击OK后我们就成功地创建了新工程!恭喜!

方法二:通过Spring Initializr创建

这种方式适用于不使用IntelliJ IDEA和使用免费版Idea的同学,通过官方创建Spring Boot工程的网站直接创建。
方法一其实也是使用这个网站作为模板来集成到Idea中的。

点击这里进入到这个网站(https://start.spring.io/)

  1. 输入工程信息,并选择Gradle工程

输入工程的信息后,如果需要更详细的信息设置,可以点击下方的"More options"按钮进行设置。

  1. 添加依赖
    这里我们可以直接搜索需要的依赖进行添加,比如我们添加Web和Devtools库。


  1. 生成工程
    在我们把所有信息填完后,接下来我们就可以点击页面底部的按钮(Generate Project)开始生成。

  1. 生成后会自动把工程下载到本地,我们解压后,将该工程保存到开发目录(你喜欢的任何位置都可以),然后使用IDE打开即可。

比如我这里使用的是IntelliJ IDEA,打开即可。

运行工程!

至此我们的工程已经创建完毕,下面就是运行它了。
我们观察工程源码包的结构,发现有一个Hellospringboot2Application的类,这个类就是我们服务的运行入口。运行它后,我们的服务就可以正常启动了!

总结

通过创建Spring Boot新工程的过程,我们就会发现它的简洁之处,不会像以前使用Spring那样要花费很多时间和精力去创建和配置,我们现在甚至可以在短短的两分钟之内创建好工程!
后面的文章我们会深入讨论Spring Boot的方方面面。

我的博客中其他关于Spring Boot的所有文章可以点击这里找到,欢迎关注!

如果有问题可以留言,或者给我发邮件lloyd@examplecode.cn,期待我们共同学习与成长!

Spring Boot 2 - 初识与新工程的创建相关推荐

  1. Spring Boot 1.5.x新特性:动态修改日志级别

    前天Spring Boot 1.5终于迎来了第一个RELEASE版本:1.5.0,但是由于一个编译依赖问题在第二天直接连击到了1.5.1.该版本的发布包含了超过320位贡献者的奉献.10000多次的代 ...

  2. Spring Boot 2.3.0 新特性:优雅停机!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 前言:关于Spring Boot.Spring Cloud应用的优 ...

  3. Spring Boot 2.3.0 新特性:优雅停机

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 前言:关于Spring Boot.Spring Clou ...

  4. 初始Spring boot和一个入门SpringBoot工程

    Spring Boot可以轻松创建可以运行的独立的,生产级的基于Spring的应用程序. spring boot优点: a.为所有Spring开发提供从根本上更快且可广泛访问的入门体验. b.开箱即用 ...

  5. 【Spring Boot】初识

    前言 说好下篇要写用Spring Boot搭建博客或者写Spring Boot初体验:想了想,还是决定先写Spring初体验,但是在写Spring Boot初体验前,我觉得有必要先解释什么是Sprin ...

  6. Spring Cloud微服务之父工程的创建(一)

    第一步:创建父工程 1.创建sprigboot工程itydf-parent 在idea开发工具中,使用 Spring Initializr 快速初始化一个 Spring Boot 模块,版本使用:2. ...

  7. Spring Boot 2.6.0 新特性默认禁止循环引用

    如下代码,ComponentA类注入ComponentB类,ComponentB类注入ComponentA类,就会发生循环依赖的问题,在2.6.0之前,spring会自动处理循环依赖的问题 impor ...

  8. spring boot yml 文件的新的配置@value无法读取

    问题:在一个工具类中,通过@Value来映射配置文件的值,得到的总是null 原因:不能用new工具类的方式,应该是用容器注册(@Autowried)的方式使用此工具类,就能得到配置文件里的值 上代码 ...

  9. 深入学习微框架:Spring Boot

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过 ...

最新文章

  1. python画动态爱心-【Python】五分钟画一条动态心形曲线~
  2. Java 静态导入 、可变参数
  3. one microblog from 任志强
  4. 什么流读取MultipartFile_深入理解并运用Node中的IO模型流
  5. note同步不及时 one_一辆理想ONE又“跪了”?理想官方紧急发文回应
  6. Django模板之显示QuerySet内容,字典中内容
  7. php中的strncmp,PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
  8. python面对对象计算矩形_python第九课 面向对象
  9. day1---流程控制语句的四种基本格式
  10. 00048_this关键字
  11. 解决嵌套块级元素垂直外边距的塌陷
  12. windows下载mysql太慢
  13. 三菱st语言编译后报C9330,三菱plc编程用什么语言比较好?三菱编程语言的特点...
  14. bt协议详解 DHT篇(上)
  15. 走进波分 -- 14.OSN902产品介绍
  16. 微博mysql连接错误_新浪微博错误代码详解
  17. CSS篇十六——盒子模型之边框
  18. 购买的随身WiFi扣卡日记-拆掉内置的esim流量卡
  19. 关于“类包含显式重写ctor”的解决方法
  20. 如何将抖音快手短视频好看视频等任何直播平台视频转为MP4

热门文章

  1. Xcode8 报 ”xx“is missing from working copy 的问题解决方法
  2. Flex 加载pdf
  3. String当中的高效函数(优化)
  4. grootJsAPI文档
  5. TCP/IP网络编程
  6. VMWare虚拟机空间扩展
  7. 在线分数加减乘除计算器
  8. 弹出框之对话框和提示框,可共用代码
  9. 使用js、jquery完成省市二级联动
  10. php JS 导出表格特殊处理