SpringBoot的优势是什么

2013年12月12日,spring发布了4.0版本。这个原本只是做为Java平台上的控制反转容器的库,通过将近10年的发展已经成为了一个巨无霸产品。不过其依靠良好的分层设计,每一个功能模块都能保持较好的独立性,是Java平台不可多得的好用的开源应用程序框架。 Spring的4.0版本能够说是一个重大的更新,其全面支持Java8,而且对Groovy语言也有良好的支持。另外引入了很是多的新项目,好比Spring boot,Spring Cloud,Spring WebSocket等。java

Spring因为其繁琐的配置,一度被人成为“配置地狱”,各类XML、Annotation配置,让人眼花缭乱,并且若是出错了也很难找出缘由。Spring Boot项目就是为了解决配置繁琐的问题,最大化的实现convention over configuration(约定大于配置)。熟悉Ruby On Rails(ROR框架的程序员都知道,借助于ROR的脚手架工具只需简单的几步便可创建起一个Web应用程序。而Spring Boot就至关于Java平台上的ROR。程序员

Spring Boot的特性有如下几条:web

建立独立Spring应用程序spring

嵌入式Tomcat,Jetty容器,无需部署WAR包---既然他是嵌入式的那么他就不会作成一个全功能的,也即他是一个阉割版本的容器,只能提供最基础的功能,没法提供生产级别的server容器,因此说他仅仅是提供了开发的方便程度,而对于运维生产的监控等等还远远不够springboot

简化Maven及Gradle配置服务器

这一点是spring本身的做茧自缚的结果,spring的发展超出了spring开发者本身的预期,功能愈来愈强大,依赖的jar就愈来愈多,因此致使一个简单地hello world也须要导入许多的jar包,而在springboot里面开发者替你规划了几个经常使用的jar包集合,在你开发的过程中,你只须要引入一个jar其他的就会借助强大的maven或者gradle管理好jar包mvc

尽量的自动化配置Spring框架

若是你用了他的自动化,那么你就必定程度上失去了你的个性化运维

直接植入产品环境下的实用功能,好比度量指标、健康检查及扩展配置等maven

无需代码生成及XML配置(若是须要部署到生产环境当中去的话,须要服务器上的server支持 3.0以上的才能够哟,其实这个功能能够看作是spring跟着别人屁股后面跑而不是本身作的功能,别人在进步的同时,他只是跟上了节奏)

目前Spring Boot的版本为1.2.3,须要Java7及Spring Framework4.1.5以上的支持。若是想在Java6下使用它,须要一些额外的设置。

若是你想建立一个基于Spring的Web应用,只是简单的在页面中输出一个’Hello World’,按照以前的老方式,你须要建立如下文件:

web.xml : 配置使用Spring servlet,以及web其它配置;

spring-servlet.xml:配置Spring servlet的配置;

HelloController.java: controller。

若是你想运行它的话,须要将生成的WAR包部署到相应的Tomcat或者Jetty容器中才行,这也须要相应的配置。

若是使用Spring Boot的话,咱们只须要建立HelloController.java。

而后借助于Spring Boot为Maven和Gradle提供的插件来生成Jar包之后直接运行java -jar便可,简单易用。

上面提过Spring Boot对Maven及Gradle等构建工具支持力度很是大。其内置一个’Starter POM’,对项目构建进行了高度封装,最大化简化项目构建的配置。另外对Maven和Gradle都有相应的插件,打包、运行无需编写额外的脚本。

Spring Boot不止对web应用程序作了简化,还提供一系列的依赖包来把其它一些工做作成开箱即用。下面列出了几个经典的Spring Boot依赖库。

spring-boot-starter-web:支持全栈web开发,里面包括了Tomcat和Spring-webmvc。

spring-boot-starter-mail:提供对javax.mail的支持.

spring-boot-starter-ws: 提供对Spring Web Services的支持

spring-boot-starter-test:提供对经常使用测试框架的支持,包括JUnit,Hamcrest以及Mockito等。

spring-boot-starter-actuator:支持产品环境下的一些功能,好比指标度量及监控等。

spring-boot-starter-jetty:支持jetty容器。

spring-boot-starter-log4j:引入默认的log框架(logback) 
Spring Boot提供的starter比这个要多,详情请参阅文档:Starter POMs章节。

若是你不喜欢Maven或Gradle,Spring提供了CLI(Command Line Interface)来开发运行Spring应用程序。你可使用它来运行Groovy脚本,甚至编写自定义命令。安装Spring CLI有多种方法,具体请看:安装Spring Boot Cli章节。

Spring Boot提供的功能还有不少,好比对MVC的支持、外部Properties的注入,日志框架的支持等。这里就不详述了。感兴趣的能够查看其文档来获取详细的信息。

若是你想在你的项目中使用Spring,那么最好把Spring Boot设为标配,由于它真的很方面开发,不过你也须要仔细阅读它的文档,避免不知不觉掉入坑中。

相关文章
相关标签/搜索