声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅。

长期以来 Java 的开发一直让人所诟病:

·Java 项目开发复杂度极其高;

· Java 项目的维护非常困难;

· 在云时代如何实现项目的快速部署以及快速启动;

· 即便使用了大量的开发框架,发现我们的开发也没少多少;

· 当所有的人认为 Spring 不在前进的时候,Spring 推出了微架构实现的两个重要开发框架:SpringBoot、SpringCloud。

1、 Java 开发的复杂度是最高的?

在所有的软件行业里面,如果要说商用体系,排在第一位的永远是 java,因为 java 的体系丰富,支持度高,安全性也高,但是同时我们所有的开发者也不得不去忍受 Java 中的以下痛苦:

· Java 里面提供的开发支持都属于原生操作代码,例如:JDBC 为例,如果使用 Java 原生代码会重复编写大量的内容, 例如:PreparedStatement 操作;

· Java 进行 WEB 项目开发的时候,必须要求按照严格的格式进行 WEB 项目的创建,以及每当修改 WEB 程序的时候 又需要进行 Tomcat 的重新启动;

· Java 之中虽然提供了所谓的开发标准,但是所有的公司几乎都有可能有自己的标准,例如:最初的时代 JVM 的标准 就有三个,而且许多的公司由于版本不同会造成部署的环境不同;

· Java 里面严格要求按照 MVC 的设计模式。

· 以 WEB 开发为例,一个良好的 JSP 程序代码里面不应该包含有任何的 Scriptlet 程序代码,但是要想做到这一步发现 非常麻烦,有各种实现标准,例如:JSTL + EL、SpringTaglib、StrutsTaglib、JSF、Shiro、SpringSecurity;

· 如果现在使用 Node.JS、Python 开发一个控制器程序类可能只需要几行代码,而 Java 要想开发这样一个程序,需要写 一堆的代码,而且还要求搞部署;

2、 Java 后期的发展使用了大量的 Maven 技术作为开发,那么使用了 maven 之后你会发现传统的开发处理之中并没有逃离掉传统 WEB 的身影,所有的项目依然需要打包为 war 文件,而后上传到系统之中。使用 Maven 还有一个最大的痛:如果是开发框架,那 一堆的 Maven 的配置依赖库。

3、 Rest 技术已经开始在行业之中广为流传,而 Java 要想实现 Rest 架构的开发(基于:Spring),那么也是相当麻烦的;

4、 现在行业之中,Spring 已经作为了绝对的 java 架构,但是如果要想在 Spring 之中整合 RabbitMQ、Kafka、ActiveMQ、MySQL、 Druid、Redis、Shiro,需要编写一堆堆的*.xml 配置文件; 所以在这样的一个大的历史背景下,很多人开始寻求更加简便的开发,而遗憾的是这种简便的开发没有被 JDK 所支持、没有 被 JavaEE 所支持,因为这些只是平台,平台能够提供的只是最原始的技术支持。这一时刻终于由于 Spring 框架的升级而得到了新 生,SpringBoot 的出现,改变了所有 Java 开发的困境,SpringBoot 的最终奉行的宗旨:废除掉所有复杂的开发,废除掉所有的配置文件,让开发变得更简单纯粹,核心:“零配置”。

总结:

SpringBoot 的最终奉行的宗旨:废除掉所有复杂的开发,废除掉所有的配置文件,让开发变得更简单纯粹,核心:“零配置”。

SpringBoot整合了所有的框架,就像maven整合了所有的jar一样,使用方便

SpringBoot 之所以慢慢可以火遍全世界,是因为在 SpringBoot 中使用的大量注解还是之前 Spring 所提供的注解,那么这一点
让所有的开发者几乎可以零适应进行完整过渡。其次是开发快速、简单、方便

SpringBoot系列一:SpringBoot的产生的更多相关文章

  1. Springboot系列:Springboot与Thymeleaf模板引擎整合基础教程(附源码)

    前言 由于在开发My Blog项目时使用了大量的技术整合,针对于部分框架的使用和整合的流程没有做详细的介绍和记录,导致有些朋友用起来有些吃力,因此打算在接下来的时间里做一些基础整合的介绍,当然,可能也 ...

  2. SPRING-BOOT系列之SpringBoot快速入门

    今天 , 正式来介绍SpringBoot快速入门 : 可以去如类似 https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/refer ...

  3. SPRING-BOOT系列之SpringBoot的诞生及其和微服务的关系

    转载自 : https://www.cnblogs.com/ityouknow/p/9034377.html 微服务架构 微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法 ...

  4. springBoot系列教程07:异常捕获

    发生异常是很正常的事,异常种类也是千奇百怪,发生异常并不可怕,只要正确的处理,并正确的返回错误信息并无大碍,如果不进行捕获或者处理,分分钟服务器宕机是很正常的事 所以处理异常时,最基本的要求就是发生异 ...

  5. SpringBoot系列——利用系统环境变量与配置文件的分支选择实现“智能部署”

    前言 通过之前的博客:SpringBoot系列——jar包与war包的部署,我们已经知道了如果实现项目的简单部署,但项目部署的时候最烦的是什么?修改成发布环境对应的配置!数据库连接地址.Eureka注 ...

  6. 补习系列(15)-springboot 分布式会话原理

    目录 一.背景 二.SpringBoot 分布式会话 三.样例程序 四.原理进阶 A. 序列化 B. 会话代理 C. 数据老化 小结 一.背景 在 补习系列(3)-springboot 几种scope ...

  7. 补习系列(14)-springboot redis 整合-数据读写

    目录 一.简介 二.SpringBoot Redis 读写 A. 引入 spring-data-redis B. 序列化 C. 读写样例 三.方法级缓存 四.连接池 小结 一.简介 在 补习系列(A3 ...

  8. 补习系列(12)-springboot 与邮件发送

    目录 一.邮件协议 关于数据传输 二.SpringBoot 与邮件 A. 添加依赖 B. 配置文件 C. 发送文本邮件 D.发送附件 E. 发送Html邮件 三.CID与图片 参考文档 一.邮件协议 ...

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

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

  10. Springboot 系列(九)使用 Spring JDBC 和 Druid 数据源监控

    前言 作为一名 Java 开发者,相信对 JDBC(Java Data Base Connectivity)是不会陌生的,JDBC作为 Java 基础内容,它提供了一种基准,据此可以构建更高级的工具和 ...

随机推荐

  1. excel 添加换行符,去除换行符:

    excel 中添加换行符: :alt+enter 去掉excel中的换行符有三种方法: 注:解决过程中翻阅其他博客,看到如下方式: 1.看到有的说全选后“取消自动换行”,保存后,再打开,依然存在换行符 ...

  2. 关于 android receiver

    可以在代码文件中声明一个receiver,也可以在manifest中声明一个,前者中的receiver只有在该activity launch起来以后才会监听其所感兴趣的事件,而如果在androidMa ...

  3. 【ARM】2410裸机系列-按键查询式控制led

    开发环境   硬件平台:FS2410 主机:Ubuntu 12.04 LTS LED灯原理图 按键原理图 按键的接线资源 KSCAN0 -> GPE11    KSCAN1 -> GPG6 ...

  4. IIS6 301重定向和IIS7 301重定向

    IIS6 301重定向 1.先在IIS里把网站正常发布,例如域名为(www.114390.com) 2.再硬盘上建一个空文件夹 3.再到IIS里建一个网站,例如域名为(114390.com),指向这个 ...

  5. Docker 入门(Mac环境)- part 2 容器(container)

    part-2 容器(container) 简介 Docker架构有三个层面,从高到低如下: stack(栈) services(服务) containers(容器) 现在接触的这些在容器这一层里,类似 ...

  6. 05-老马jQuery教程-动画

    前言 jQuery的动画系统做的非常出色,而且把最常用的显示.隐藏.淡入淡出.滑动显示和折叠凳效果都做了很好的封装.跟jQuery的选择器和事件配合起来,可以实现很多很绚的效果,而且简单易用兼容性好. ...

  7. 2. 知识图谱-命名实体识别(NER)详解

    1. 通俗易懂解释知识图谱(Knowledge Graph) 2. 知识图谱-命名实体识别(NER)详解 3. 哈工大LTP解析 1. 前言 在解了知识图谱的全貌之后,我们现在慢慢的开始深入的学习知识 ...

  8. mysql行转列转换

    http://blog.csdn.net/sinat_27406925/article/details/77507478 mysql 行列转换 ,在项目中应用的极其频繁,尤其是一些金融项目里的报表.其 ...

  9. idea properties文件unicode码问题

    在git hub上下载了个工程.但是properties文件一直显示不了中文: # \u662F\u5426\u4F7F\u7528\u8FDC\u7A0B\u914D\u7F6E\u6587\u4E ...

  10. module.inc 模块

    /**  *加载所有已经在系统表被启用的模块.  *@参数$bootstrap  *是否加载在“引导模式”缓存页面加载的模块只减少集.见bootstrap.inc文件.  *@return  *如果$ ...