springboot可以解决spring繁琐的配置问题,最大化的实现convention over configuration,约定大于配置。
springboot的特性有以下几条:
创建独立spring应用程序
嵌入式Tomcat,Jetty容器,无需部署WAR包
简化Maven及Gradle配置
尽可能的自动化配置Spring
直接植入产品环境下的使用功能
无需代码生成及XML配置
如果想创建一个基于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提供的功能还有很多,比如对MVC的支持、外部Properties的注入,日志框架的支持等。