一、Spring Boot 系列诞生原因

上学那会主要学的是 Java 和 .Net 两种语言,当时对于语言分类这事儿没什么概念,恰好在2009年毕业那会阴差阳错的先找到了 .Net 的工作,此后就开始了漫长的 .Net 编程之旅,说实话最初的“编程思想”的形成和确立都是在头几年做 .Net 的时候慢慢培养起来的。

后来在2015年之后就开启了“百花齐放”的模式,那时候 Nodejs、Vue、Golang 在程序界开始暂露头脚并逐渐流行,而作为类游戏公司出身的我和我的老领导,在新系统开发中大量使用了大量的新技术元素,那时候 Nodejs、Golang 作为我们首选的主要的开发语言,进而取代了之前一直使用的 .Net,这个经历对我的影响非常大,我会开始尝试更多的开发语言和框架,甚至到后来的手机开发也开始越做越顺手,当然手机的框架我们也用了很多,踩了很多坑,从最开始的 DCloud 到 Xamarin 再到 React Native,我们是一边实践一边用于生产坏境,所幸由于领导的体谅和我们的努力,让我们能很顺利的走过那段“艰难”岁月,一直到后来的技术逐渐稳定。

说了辣么多,和我们本节的主题“为什么会诞生 Spring Boot 系列文章”有毛关系?

客观莫慌,待老衲如实道来。

是这样子,虽然我们这一路似乎走的还算平稳,那为什么导致我后来用 Java 和 Spring Boot 的诞生呢?原因其实也挺简单,新技术的使用会带来几个问题?

  1. 新技术的使用增加了人员招聘的成本,通常招不到更多的人(在业务高速发展的阶段会影响项目的进度);
  2. 新技术使用成本很高,通常有更多的坑和更少的解决方案;
  3. 新技术可控性更差,有些问题可能是致命性,存在不能修复的风险;

所以经过这些事之后,让我明白一件事,那就是“顺势而为”,Java 作为国内最流行的语言,处理 BAT 还有很多名不见经传的大小中公司都在使用,而且有很成熟的解决方案和人员优势,我们干嘛要做吃力不讨好的事情。当然这也不是教育我们不要尝试新的事物,而是要循序渐进深入思考的使用和应用新技术,要明白所有的事情不是一蹴而就的,凡事都有一个过程,新技术是一定要学的,但用于生产环境一定要结合自身情况去深入思考。当然我更鼓励大家去学习新技术,但不要迷恋新技术,凡事都与利弊的,要做一件事情一定要深入思考。

有了这个想法之后,要很好的使用 Java,Spring Boot 当时逃不掉了,这是此系列诞生主要的原因,当然学 Spring Boot 可以自己闷头去学也是没有问题的,那 Spring Boot 系列诞生的原因还有那些呢?

  1. 会用一种技术和给别人讲明白一种技术是两码事情,想通过给别让讲明白这件事,驱动自己更深层次的理解和探寻这门技术;
  2. 照本宣科的学习一种技术,是一件简单事情,但要理解技术内在的联系,把你理解的技术转述给别人,引导别人从浅到深平滑的思维过度,以及按照某种规律,建立起更加牢固的记忆和更容易理解的文章,是一件非常不易的事儿,而要搞懂这种内在的联系(或者说是内在的规律),首先你要把这项技术理解的非常深刻才行,这是一种良性互动的驱动力,提供优质的文章=>积极的反馈=>改善,提供更优质的文章=>更积极的反馈;
  3. 大部分类似的文章比较旧,更新不够及时;
  4. 大部分类似的文章千篇一律,人云亦云,没有自己的独立思考与实践;
  5. 大部分类似的文章在功能使用上过于简单,想要深层次的挖掘一些更本质、更不一样的东西;

说了这么多那就开始一边实践,一边总结经验来汇报给各位看官老爷喽。

二、Spring Boot 系列目录

Spring Boot (一)快速入门

Spring Boot (二)集成Jsp与生产环境部署

Spring Boot (三)模板引擎FreeMarker集成

Spring Boot (四)模板引擎Thymeleaf集成

Spring Boot (五)Spring Data JPA 操作 MySQL 8

Spring Boot(六)集成 MyBatis 操作 MySQL 8

Spring Boot (七)MyBatis代码自动生成和辅助插件

Spring Boot (八)MyBatis + Docker + MongoDB 4.x

Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据

Spring Boot(十)Logback和Log4j2集成与日志发展史

Spring Boot(十一)Redis集成从Docker安装到分布式Session共享

Spring Boot(十二)单元测试JUnit

Spring Boot(十三)RabbitMQ安装与集成

Spring Boot(十四)RabbitMQ延迟队列

以上几乎包含了 Spring Boot 使用中,要涉及的方方面面了,后期根据工作中使用的情况,可能会做其他补充。

三、特别鸣谢

当然以上这些实践总结,不是凭空想出来的,一定参考了很多技术文章加上我自己的思考产生的心得体会,不保证一定是对的,但都是我的深思熟虑之后的所得所想,这里重点感谢几位老哥的资料:

纯洁的微笑:http://www.ityouknow.com/spring-boot.html

battcn:https://blog.battcn.com/categories/SpringBoot/

程序猿DD:http://blog.didispace.com/categories/Spring-Boot/

最后,推荐给大家一个非常不错的付费课程:《精通 Spring Boot 42 讲》


关注作者二维码,查看更多动态:

Spring Boot 系列总目录的更多相关文章

  1. spring boot系列01--快速构建spring boot项目

    最近的项目用spring boot 框架 借此学习了一下 这里做一下总结记录 非常便利的一个框架 它的优缺点我就不在这背书了 想了解的可以自行度娘谷歌 说一下要写什么吧 其实还真不是很清楚,只是想记录 ...

  2. 国内最全的Spring Boot系列之二

    历史文章 <国内最全的Spring Boot系列之一> 视频&交流平台 SpringBoot视频:http://t.cn/R3QepWG Spring Cloud视频:http:/ ...

  3. Spring Boot系列——如何集成Log4j2

    上篇<Spring Boot系列--日志配置>介绍了Spring Boot如何进行日志配置,日志系统用的是Spring Boot默认的LogBack. 事实上,除了使用默认的LogBack ...

  4. Spring Boot 系列教程19-后台验证-Hibernate Validation

    后台验证 开发项目过程中,后台在很多地方需要进行校验操作,比如:前台表单提交,调用系统接口,数据传输等.而现在多数项目都采用MVC分层式设计,每层都需要进行相应地校验. 针对这个问题, JCP 出台一 ...

  5. Spring Boot 系列教程18-itext导出pdf下载

    Java操作pdf框架 iText是一个能够快速产生PDF文件的java类库.iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的.它的类库尤其与java Servlet有很好 ...

  6. Spring Boot 系列教程17-Cache-缓存

    缓存 缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找.由于缓存的运行速度比内存快得多,故缓存的作用就是帮 ...

  7. Spring Boot 系列教程16-数据国际化

    internationalization(i18n) 国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式. 它要求从产品中抽离所有地域语言,国家/地区和 ...

  8. Spring Boot 系列教程15-页面国际化

    internationalization(i18n) 国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式. 它要求从产品中抽离所有地域语言,国家/地区和 ...

  9. Spring Boot 系列教程14-动态修改定时任务cron参数

    动态修改定时任务cron参数 不需要重启应用就可以动态的改变Cron表达式的值 不能使用@Scheduled(cron = "${jobs.cron}")实现 DynamicSch ...

随机推荐

  1. W3C的标准到底是啥?

    1.图片的alt="" 属性必须每张图片都加上,而且对齐属性用CSS来定义.不加不能通过XHTML 1.0的验证. 2.每个文档必须加上DTD声明. a) !DOCTYPE htm ...

  2. jQuery(一)

    jquery介绍 jQuery是目前使用最广泛的javascript函数库.据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库.微软公司甚至把jQuery作为他们的官方库. ...

  3. 把.zip文件转化为.tar.gz文件

    工作中正好用到上传tar.gz文件,没有现成的转换工具,就写了方法转换 #encoding: utf-8import osimport tarfileimport zipfileimport osim ...

  4. java DTO对象与PO对象的相互转换

    2018-09-27 10:27:50 前言: 在实际开发中往往需要DTO对象与PO对象的相互转换: 先说说什么是DTO对象吧,个人觉得DTO就是PO的扩展而已,PO专门指向数据库,DTO作扩展(字段 ...

  5. pyhton 监听文件输入实例

    def tail(filename): f = open(filename,encoding='utf-8') while True: line = f.readline() if line.stri ...

  6. 36ArcGIS API for JavaScript3.X 系列加载天地图(经纬度)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. Katalon Studio之请求响应中文乱码解决方法

    最近在用Katalon做接口测试过程中发现请求响应消息中返回的中文均为乱码,这是因为我们使用的系统环境在初始安装时选择的中文简体,导致windows系统默认编码格式为GBK,但是KS的编码格式是UTF ...

  8. 接口自动化集成到jenkins(Java+testng+maven+git)

    一jenkins启动命令:jenkins 查看端口号: 1.lsof -i:端口号 2.netstat -tunlp|grep 端口号 二: 登录:http://localhost:8080 输入:u ...

  9. jq 点击复制div里面的内容 如果粘贴到富文本中,会将样式,里面所有的标签,文字一并粘贴进去

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  10. Tensorboard可视化(关于TensorFlow不同版本引起的错误)

    # -*- coding: utf-8 -*-"""Created on Sun Nov 5 15:28:50 2017 @author: Administrator&q ...