SpringBoot 简介
一、SpringBoot
谈及 Spring Boot,就需要谈及 Java 为人所诟病的地方。
第一,Java 开发项目复杂度极其高,确切地说,就是需要引用的技术非常多,比如负载均衡方面 Nginx、keepalived,分布式框架 dubbo、zookeeper,缓存技术 Redis、memcached 等等;
第二,Java 项目的维护非常困难,涉及的技术和业务面广了,进行相关的维护自然不容易;
第三,在云时代如何实现项目的快速部署以及快速启动,对于传统的方式,部署需要一个一个技术实现,非常麻烦;
第四,即便使用了大量的开发框架,发现开发也没有变少;
1、为什么 Java 开发的复杂度是最高的?
在所有软件行业里面,尤其是商用体系,Java 是排名第一的,因为其体系丰富,支持度高,安全性也高,但是也给开发者带来了以下痛苦:
以 WEB 开发为例,一个良好的 JSP 程序代码里面不应该有任何的 scriptlet 程序代码,但是要实现这一步非常麻烦,有各种标准,例如:JSTL + EL、SpringTaglib、StrutsTaglib、JSF、Shiro、SpringSecurity;
如果现在使用 Node.js、Python 开发一个控制器只需要几行代码,而对于 Java 而言,就需要编写大量代码;
Java 提供的开发支持属于原生操作代码,例如 JDBC,需要编写大量重复的内容;
Java 进行 WEB 项目开发的时候,必须按照严格的格式进行 WEB 项目创建,同时,每修改一次,还需要重新启动 tomcat;
Java 虽然提供了所谓的开发标准,但是所有的公司几乎都有可能有自己的标准,最初的时候 JVM 有三个标准,许多公司因为版本不同而造成部署的环境也不同。
2、Java 后期使用了 Maven,但是通过 Maven 并没有逃离掉传统 WEB 的身影,所有的项目依然需要打包为 war 文件,而后上传到系统之中。使用 Maven,尤其开发框架,需要配置大量的依赖包。
3、Rest 技术已经在行业中广为流传,而 Java 要想实现基于 Spring 的 Rest 架构的开发,也非常麻烦。
4、现在行业之中,Spring 已经作为了绝对的架构,但是要整合 RabbitMQ、Kafka、ActiveMQ、MySql、Druid、Redis、Shiro,需要编写大量的 XML 文件。
以上所暴露的问题,以传统的 MVC 设计模式的各个环节进行分析得出的。基于这样的问题,开发者迫切需要更加简便的开发。但是对于 jdk 而言,并没有支持,它们只是作为平台,提供最基础的技术支持。随着 Spring 框架升级,SpringBoot 的诞生,改变了以上 Java 所面临的问题。
SpringBoot 的宗旨:废除掉所有复杂的开发,废除掉所有的配置文件,让开发变得简单纯粹,核心就是“零配置”。但是,会使用到文本,因为不使用文本,会增加大量代码编写。
简洁化的开发,这是 SpringBoot 的目的。SpringBoot 就像一个开关,对各种框架进行整合,致力于提供更加简便的开发。
当前时代,SpringBoot 能够大火全球,关键在于使用的注解还是原来 Spring 提供的注解,这样对于许多开发者而言,就省掉许多功夫,也能够快速适应 SpringBoot 开发。
评论