提升技能
VMware 提供培训和认证,助您快速提升。
了解更多(这篇博文由 Phil Webb 和 Dave Syer 共同撰写。)
我们很高兴宣布一个名为 Spring Boot 的新项目的首个里程碑版本发布。
Spring Boot 旨在通过最少的麻烦轻松创建基于 Spring 的生产级应用和服务。它对 Spring 平台采取了一种“有主见”的方式,以便新用户和现有用户都能快速获得所需的功能。您可以使用它创建独立的 Java 应用,这些应用可以使用 'java -jar'
启动,也可以采用更传统的 WAR 部署方式。我们还提供一个命令行工具,用于运行 'spring scripts'。
下图展示了 Spring Boot 作为更广泛 Spring 生态系统中的一个焦点。它为用户提供了一个小的入口,以便他们能够接触 Spring 的其余部分并从中获取价值。
Spring Boot 的主要目标是:
Spring Boot 不生成代码,并且绝对不需要 XML 配置。
Spring Boot 附带了一个小的命令行应用,可以用来运行 'spring scripts'。Spring scripts 用 Groovy 编写,这意味着您拥有熟悉的 Java 类似语法,而无需编写大量样板代码。我们只需查看您编写脚本的方式就能推断出许多信息。例如,这里有一个简单的 web 应用
@Controller
class ThisWillActuallyRun {
@RequestMapping("/")
@ResponseBody
String home() {
return "Hello World!"
}
}
当您使用 'spring run webapp.groovy'
运行此应用时,会发生以下几件事:
'import'
语句,以节省您的键入时间@ResponseBody
注解并下载相应的 Spring JAR 包@Configuration
命令行工具能够识别多种不同类型的 Spring 应用,包括 Web、批处理和集成。在 GitHub 仓库中提供了许多示例。
您无需使用命令行工具或编写 Groovy 代码即可获得 Spring Boot 的好处。我们也提供一流的 Java 支持。例如,这是使用 Java 编写的同一应用
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;
@Controller
@EnableAutoConfiguration
public class SampleController {
@RequestMapping("/")
@ResponseBody
String home() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleController.class, args);
}
}
除了 import 语句外,此示例与之前的 Groovy 脚本的主要区别在于调用 SpringApplication
的 main()
方法以及 @EnableAutoConfiguration
注解。
显然,使用 Java 时,您还需要一个构建系统来编译和打包您的代码。我们提供了许多方便的“starter”POM,您可以配合 Maven、Gradle 或 Ant+Ivy 使用它们快速获取合适的依赖项。例如,上面的应用只需要对 spring-boot-starter-web
模块的单个依赖项。
我们还提供 Maven 和 Gradle 插件,让您可以打包一个完全独立的“fat jar”,该 jar 可以通过命令行启动
$ java -jar myproject.jar . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: v0.0.0.BUILD.SNAPSHOT 2013-07-31 00:08:16.117 INFO 56603 --- [ main] o.s.b.s.app.SampleApplication : Starting SampleApplication v0.1.0 on mycomputer with PID 56603 (/apps/myapp.jar started by pwebb) 2013-07-31 00:08:16.166 INFO 56603 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@6e5a8246: startup date [Wed Jul 31 00:08:16 PDT 2013]; root of context hierarchy
Spring Boot 还包含许多有用的特性,这些特性在您将应用部署到生产环境时通常需要。我们可以自动提供 Web 端点,您可以使用它们监控应用健康状况、提供基本指标或分析生产问题(如线程死锁)。我们还提供一个新的 @ConfigurationProperties
注解,您可以使用它来外部化您的应用配置(完全支持 JSR-303 @Valid
注解)。
Spring Boot 0.5.0.M1 现已在 Spring 里程碑仓库中可用。如果您想尝试此博客中的任何示例,请前往 GitHub 项目页面,在那里您可以找到详细说明。我们正在积极寻求早期反馈,请随时 提出问题 或 fork 仓库并提交 pull request。
尽快预订您在 圣克拉拉 SpringOne 大会的位置。这是亲身了解所有最新进展并提供直接反馈的最佳机会。预计今年将有一些重要的新发布。查看最近的博客文章了解我的意思,还有更多内容即将到来!