未经允许,不得转载

原作者:字母哥博客

本文完整系列出自:springboot深入浅出系列

一、前置说明

本节大纲

  • spring boot 诞生的背景
  • Spring boot 改变了什么
  • Spring Boot主要特性
  • Spring Boot集成第三方开源组件的步骤

二、spring boot诞生的背景

在spring boot出现以前,使用spring框架的程序员是这样配置web应用环境的,需要大量的xml配置。

  • 随着web项目集成软件的不断增多,xml配置也不断的增多,xml配置文件也在不断地增多,项目的依赖管理也越发的复杂。spring框架也因此饱受争议,配置文件难以理解且容易出错。
  • xml配置文件不但复杂,而且绝大部分属于模板配置,也就是说有80%以上的配置是不断重复的。也就是说在这个web项目里面这样配置,挪到另一个项目里面这部分配置仍然相同。

因此,像JFinal这种轻量级的web开发框架,因为其简单易用的特性,而逐渐的有了很大发展的空间。在 2013 年的 SpringOne 2GX 会议上,Pivotal 的 CTO Adrian Colyer 回应了关于spring框架使用复杂度的问题,并且特别提到该平台将来的目标之一就是实现免 XML 配置和提供更佳开发体验。 也就是我们今天使用到的spring boot的诞生的原因。

举一个例子:自己接电线与标准化插座 Spring Boot的配置方式,就像是插头插座,就是这个标准。你第三方开源类库想接入进来,你就做一个starter的适配。spring MVC方式就像是手动接电线,很灵活,但是不同的人接出来的效果千差万别,而且很容易出错。Spring boot虽然灵活性不如Spring MVC的方式,你也不太清楚插座里面的线路是什么样,但就是方便易用。话说回来,当你习惯使用插头插座,方便易用,你还期望自己是个电工不成?

三、spring boot 改变了什么

Spring Boot 的目标不在于为已解决的问题领域提供新的解决方案,而是为平台带来另一种新的开发体验,从而简化对这些已有技术的使用。

  • 使配置变简单
  • 使监控变简单
  • 使部署变简单
  • 使开发变简单

具体这些改变如何得以体现,请学习后面的章节!

四、Spring Boot主要特性

  • 遵循“约定优于配置”的原则,简化配置
  • 可以完全脱离XML配置文件,采用注解配置和java Config
  • 内嵌Servlet容器,应用可用jar包执行:java -jar
  • 快速完成项目搭建、整合第三方类库,方便易用
  • 提供了starter POM, 能够非常方便的进行包管理, 简化包管理配置
  • 与Spring cloud天然集成,spring boot是目前java体系内实现微服务最佳方案

五、Spring Boot集成第三方类库的步骤

  1. 通过maven引入springboot-XXXX-starter
  2. 修改ymal或properties全局统一配置文件
  3. 加入一个Java Config。这个属于个性化配置,如果使用通用配置,这一步不需要。

有哪些官方已经默认集成的类库?请参考:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter

未经允许,不得转载

原作者:字母哥博客

本文完整系列出自:springboot深入浅出系列

本篇文章由一文多发平台ArtiPub自动发布

springboot系列之01-产生的背景及其优势的更多相关文章

  1. springBoot系列教程01:elasticsearch的集成及使用

    1.首先安装elasticsearch 集群环境,参考 http://www.cnblogs.com/xiaochangwei/p/8033773.html 注意:由于我的代码采用的是springbo ...

  2. Springboot 系列(十二)使用 Mybatis 集成 pagehelper 分页插件和 mapper 插件

    前言 在 Springboot 系列文章第十一篇里(使用 Mybatis(自动生成插件) 访问数据库),实验了 Springboot 结合 Mybatis 以及 Mybatis-generator 生 ...

  3. SpringBoot系列之@Value和@ConfigurationProperties

    继上一篇博客SpringBoot系列之YAML配置用法之后,再写一篇@Value.@ConfigurationProperties的对比博客 这两个主键都是可以获取配置文件属性的,不过是有比较大的区别 ...

  4. SpringBoot系列之@PropertySource读取yaml文件

    SpringBoot系列之@PropertySource支持yaml文件读取 最近在做实验,想通过@PropertySource注解读取配置文件的属性,进行映射,习惯上用properties都是测试没 ...

  5. SpringBoot系列之@PropertySource用法简介

    SpringBoot系列之@PropertySource用法简介 继上篇博客:SpringBoot系列之@Value和@ConfigurationProperties用法对比之后,本博客继续介绍一下@ ...

  6. SpringBoot系列之配置文件占位符使用

    SpringBoot系列之配置文件占位符使用 Springboot占位符支持的有随机数和配置的值等等,本博客主要介绍的是随机数和获取属性配置值的简单用法 随机数获取 支持的写法有: ${random. ...

  7. SpringBoot系列教程web篇之过滤器Filter使用指南

    web三大组件之一Filter,可以说是很多小伙伴学习java web时最早接触的知识点了,然而学得早不代表就用得多.基本上,如果不是让你从0到1写一个web应用(或者说即便从0到1写一个web应用) ...

  8. SpringBoot系列教程JPA之新增记录使用姿势

    SpringBoot系列教程JPA之新增记录使用姿势 上一篇文章介绍了如何快速的搭建一个JPA的项目环境,并给出了一个简单的演示demo,接下来我们开始业务教程,也就是我们常说的CURD,接下来进入第 ...

  9. SpringBoot系列之自定义starter实践教程

    SpringBoot系列之自定义starter实践教程 Springboot是有提供了很多starter的,starter翻译过来可以理解为场景启动器,所谓场景启动器配置了自动配置等等对应业务模块的一 ...

随机推荐

  1. .NET CORE 怎么样从控制台中读取输入流

    .NET CORE 怎么样从控制台中读取输入流 从Console.ReadList/Read 的源码中,可学习到.NET CORE 是怎么样来读取输入流. 也可以学习到是如何使用P/Invoke来调用 ...

  2. switch语句(下)(转载)

    之前我们介绍了在switch语句中使用整数类型和枚举类型的情况.这一部分继续介绍使用string类型的情况.string类型是switch语句接受的唯一一种引用类型参数. 下面来看一段C#代码. 代码 ...

  3. wait()、notify()方法原理,以及使用注意事项

    wait.notify原理 在前面以经说到对象锁的本质,实际上是对象头的一个监视器锁的数据结构.这个结构如下: (图片来源于网络) 几个线程一起竞争对象的锁(enter),只有一个能成功(acquir ...

  4. SQlServer 数据库表名称,字段比较

    项目中一般分测试环境(QAS),生产环境(PRD),当我们的项目经历了一次周期跨度较长的更新后,当我们发布到生产环境时,首要的任务是将新增的表,字段更新到生产数据库.很多时候,当我们发布更新的时候,已 ...

  5. Python编程习惯

  6. E-triples II_2019牛客暑期多校训练营(第四场)

    求用n个3的倍数的数按位或出数字a的方案数有多少种(0也算3的倍数) 题解 若数b的每个二进制位上的1,在a中也为1,则称b为a的子集 容易知道任意个a的子集按位或出来的结果还是a的子集 若问题改为按 ...

  7. Atcode B - Colorful Hats(思维)

    题目链接:http://agc016.contest.atcoder.jp/tasks/agc016_b 题解:挺有意思的题目主要还是模拟出最多有几种不可能的情况,要知道ai的差距不能超过1这个想想就 ...

  8. codeforces 799 C. Fountains(二分+思维)

    题目链接:http://codeforces.com/contest/799/problem/C 题意:要求造2座fountains,可以用钻石,也可以用硬币来造,但是能用的钻石有限,硬币也有限,问能 ...

  9. CodeForces 758 D Ability To Convert

    Ability To Convert 题意:给你一个n进制的60位的数,但是由于Alexander只会写0->9,所以他就会用10来表示十而不是A(假设进制>10); 题解:模拟就好了,先 ...

  10. codeforces 798 D. Mike and distribution(贪心+思维)

    题目链接:http://codeforces.com/contest/798/problem/D 题意:给出两串长度为n的数组a,b,然后要求长度小于等于n/2+1的p数组是的以p为下表a1-ap的和 ...