Spring Boot之初体验

1、Spring Boot是啥

Spring Boot 项目旨在简化创建产品级的Spring 应用和服务;你可通过它来选择不同的Spring 平台;可创建独立的Java 应用和Web 应用,同时提供了命令行工具来允许 'spring scripts'。

——开源中国

该项目主要的目的是:

- 为 Spring 的开发提供了更快更广泛的快速上手

- 使用默认方式实现快速开发

- 提供大多数项目所需的非功能特性,诸如:嵌入式服务器、安全、心跳检查、外部配置等

Spring Boot 不生成代码,完全无需 XML 配置。

以下是本人对Spring Boot的认知:

Spring Boot是开发者和Spring 本身框架的中间层,帮助开发者统筹管理应用的配置,提供基于实际开发中常见配置的默认处理(即习惯优于配置),简化应用的开发,简化应用的运维;总的来说,其目的就是为了对Java web 的开发进行“简化”和加“快”速度。

同时随着微服务概念的推广和实践,Spring Boot的精简理念又使其成为Java微服务开发的不二之选,换句话说,Spring Boot其实就是为了微服务而生的Java web框架。

2、Spring Boot 都干了些啥

Spring Boot 的目标并不是为那些已经得到解决方法的问题领域提供新的解决方案, 而是要将平台用于促进和简化那些已经可用的技术或成熟的开发经验。这使得Boot 成为了那些熟悉Spring 生态系统的开发者的一个理想选择; 同样也通过允许其用一种简化的方式拥抱Spring 技术,从而迎合了更多的新玩家。

因此,从最根本上来讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用。所以对于Spring Boot 而言,Spring 都干了啥,Spring Boot 就干了啥。

只不过它又额外多干了些事儿:

- 创建可以独立运行的Spring 应用(jar/war)

- 直接内嵌Tomcat 或Jetty 服务器,不需要部署 WAR 文件

- 提供推荐的基础 POM 文件来简化Apache Maven 配置

- 尽可能的根据项目依赖来自动配置Spring 框架

- 提供可以直接在生产环境中使用的功能,如性能指标、应用信息和应用健康检查

- 没有代码生成,也没有XML 配置文件

- 提供优先级不同的统一配置化方案,方便应用的运维

其实Spring Boot 额外的这些功能就是为了简化开发过程中引入或启动相关Spring 功能的配置。这样带来的好处就是降低开发人员对于框架的关注点,可以把更多的精力放在自己的业务代码上。

3、快速体验

Spring Boot 的特点有很多,本文篇幅有限,在此就不一一列举,但就其突出的特点简化、快,我们还是可以体验一下的。

体验目标:使用Spring Boot 搭建一个web 应用程序,并写一个接口,返回一个json 数据。

步骤一:创建一个maven工程,并将Spring Boot 启动所需的jar 依赖进去

如上图所示,构建基于Spring Boot的应用要首先引入了spring-boot-starter-parent,用于统一管理依赖jar的版本。

其次引入了spring-boot-starter-web 依赖,作用是支持 Web 应用开发,包含 spring-mvc 和内嵌的tomcat。

步骤二:写一个main方法用于启动Spring Boot应用

注意,此处需要在main 方法所在class 上添加一个注解@SpringBootApplication

此注解源码如下图所示:

该注解等价于三个注解,@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan,即表明该应用采用自动配置的SpringBoot 应用,同时默认以该class 所在包为基础进行扫描所有的类。

步骤三:写自己的Controller接口

如上图,此处基本上和在Spring MVC 框架下写的Controller 没有任何差别。

至此,所有准备工作完毕,整个demo 工程的结构如下:

下面我们将通过采用直接启动main 方法的方式启动应用程序,然后通过浏览器访问。

启动过程中会发现控制台会在我们没有配置任何日志框架的情况下输出应用的启动信息,如图:

这是因为当你没有特别配置指定日志框架,Spring Boot 就会默认采用logback 作为日志框架。

注意,Spring Boot 的应用在没有特别指定的情况下,默认采用8080端口

启动完毕后,我们访问浏览器http://localhost:8080/test

结果如图:

以上我们快速体验基本完成,对比传统的基于Spring 的Java web 开发,我们没有构建web.xml 的配置文件,也没有写任何Spring 的配置文件,同时我们也没有将应用放在tomcat 中进行启动。我们只做了三件事就讲一个应用搭建起来,第一引入SpringBoot,第二写main 方法,第三写一个API 接口。由此可见,Spring Boot 在搭建一个web 应用上确实比传统的Spring 要快很多,方便很多。

Spring Boot 对于其他功能的引入也做了很多简化处理,只需要对应的引入相关功能的spring-boot-starter 依赖即可,如下:

以上依赖引入即可使用其功能,Spring Boot都会采用默认配置的方式进行整合,从而达到了所谓的快和简化的特点。

总结

对于广大使用Spring 框架的开发人员来说,Spring Boot 无疑是一个非常实用的工具,本文只是粗略的介绍了一下Spring Boot。而后通过实际构建了一个基于Spring Boot 的web 应用,来浅显的针对其快速创建Spring 应用的特性进行了验证。Spring Boot 的快和简化,主要是通过习惯优于配置的默认化配置方案来实现的。

对于其它特点如自动配置、内部配置、外部化配置,以及提供'spring scripts' 命令行工具来运行Groovy 文件等,本文都未涉及,感兴趣的读者可以自行体验。

总而言之,基于Spring Boot 的诸多特性,其应该成为每个使用Spring 框架的开发人员的不二选择。


本文作者:毛宾奇(点融黑帮),目前就职于点融网Loan Business团队,Java开发工程师。专注于Java Web开发,业余喜欢学习运维知识,了解前端开发,实践移动端开发。

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

推荐阅读更多精彩内容