值得使用的Spring Boot

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

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

Spring Boot的特性有以下几条:

  • 创建独立Spring应用程序
  • 嵌入式Tomcat,Jetty容器,无需部署WAR包
  • 简化Maven及Gradle配置
  • 尽可能的自动化配置Spring
  • 直接植入产品环境下的实用功能,比如度量指标、健康检查及扩展配置等
  • 无需代码生成及XML配置

目前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。

HelloController.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package hello;

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;

@Controller
@EnableAutoConfiguration
public class HelloController {

    @RequestMapping("/")
    @ResponseBody
    String home() {
        return "Hello World!";
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(HelloController.class, args);
    }
}

然后借助于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章节。

安装完毕以后可以运行 srping version来查看当前版本。

你可以使用Groovy编写一个Controller。

hello.groovy
1
2
3
4
5
6
7
8
9
@RestController
class WebApplication {

    @RequestMapping("/")
    String home() {
        "Hello World!"
    }

}

然后使用spring run hello.groovy来直接运行它。访问localhost:8080即可看到打印的信息。

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

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

时间: 2024-08-27 12:32:20

值得使用的Spring Boot的相关文章

使用Ratpack和Spring Boot打造高性能的JVM微服务应用

使用Ratpack和Spring Boot打造高性能的JVM微服务应用 这是我为InfoQ翻译的文章,原文地址:Build High Performance JVM Microservices with Ratpack & Spring Boot,InfoQ上的中文地址:使用Ratpack与Spring Boot构建高性能JVM微服务. 在微服务天堂中Ratpack和Spring Boot是天造地设的一对.它们都是以开发者为中心的运行于JVM之上的web框架,侧重于生产率.效率以及轻量级部署.他

Spring Boot启动流程详解(一)

环境 本文基于Spring Boot版本1.3.3, 使用了spring-boot-starter-web. 配置完成后,编写了代码如下: @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } @RestController public class RootCont

用Spring Boot颠覆Java应用开发

Java开发概述: 使用Java做Web应用开发已经有近20年的历史了,从最初的Servlet1.0一步步演化到现在如此多的框架,库以及整个生态系统.经过这么长时间的发展,Java作为一个成熟的语言,也演化出了非常成熟的生态系统,这也是许多公司采用Java作为主流的语言进行服务器端开发的原因,也是为什么Java一直保持着非常活跃的用户群.然而这个生态系统纷繁复杂,一个非常简单的Java Web应用程序都有可能应用到以下技术: Java开发分为两个阵营,一个是由Oracle 为代表的Java EE

构建微服务:Spring boot

构建微服务:Spring boot 在上篇文章构建微服务:Spring boot 提高篇中简单介绍了一下spring data jpa的基础性使用,这篇文章将更加全面的介绍spring data jpa 常见用法以及注意事项 前几篇文章地址: 构建微服务:Spring boot 入门篇 构建微服务:Spring boot 提高篇 构建微服务:Spring boot中Redis的使用 构建微服务:thymeleaf使用详解 作者:纯洁的微笑出处:http://www.ityouknow.com/

深入学习微框架:Spring Boot

由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. 多年以来,Spring IO平台饱受非议的一点就是大量的XML配置以及复杂的依赖管理.在去年的SpringOne 2GX会议上,Pivotal的CTO Adrian Colyer回应了这些批评,并且

spring boot实战(第十五篇)嵌入tomcat源码分析

嵌入tomcat源码分析 在启动spring boot工程时利用@SpringBootApplication注解,该注解启动@EnableAutoConfiguration自动配置,加载META-INF/spring.factories文件 # Auto Configure org.springframework.boot.autoconfigure.EnableAutoConfiguration=org.springframework.boot.autoconfigure.admin.Spri

初入spring boot(四 )web项目

1. 模板引擎 spring boot提供了大量的模板引擎,包括FreeMark.Groovy.Thymeleaf.Velocity等,但spring boot中推荐用Thymeleaf,因为Thymeleaf提供了完美的spring mvc的支持. 2. 与spring boot集成 在spring mvc中,若要集成一个模板引擎的话,需要定义ViewResolver,而ViewResolver需要定义一个View.Thymeleaf已经定义好了ViewResolver和View,分别是org

使用Spring Boot开发 “Hello World” Web应用

环境准备 由于现在很多IDE都支持Maven, 所以我们将使用Maven构建该工程: 开始之前,需要先安装Java和Maven: 本工程将基于Spring Boot 1.4.3.RELEASE开发,推荐的Java版本是Java 7+,maven版本是3.2+,可使用如下命令检查是否符合要求: 创建POM 由于使用Maven构建,所以我们首先需要创建一个pom.xml文件,用于构建本工程,打开你最喜欢的编辑器(如Notepad++),添加如下内容: <?xml version="1.0&qu

使用Ratpack与Spring Boot构建高性能JVM微服务

在微服务天堂中Ratpack和Spring Boot是天造地设的一对.它们都是以开发者为中心的运行于JVM之上的web框架,侧重于生产率.效率以及轻量级部署.他们在服务程序的开发中带来了各自的好处.Ratpack通过一个高吞吐量.非阻塞式的web层提供了一个反应式编程模型,而且对应用程序结构的定义和HTTP请求过程提供了一个便利的处理程序链:Spring Boot集成了整个Spring生态系统,为应用程序提供了一种简单的方式来配置和启用组件.Ratpack和Spring Boot是构建原生支持计