领先一步
VMware 提供培训和认证,以加速您的进步。
了解更多(这篇博客文章由Phil Webb和Dave Syer共同撰写)。
我们很高兴地宣布一个名为Spring Boot的新项目的第一个里程碑版本。
Spring Boot旨在简化创建基于Spring的、生产级的应用程序和服务,并最大限度地减少繁琐的工作。它对Spring平台采取了明确的观点,以便新用户和现有用户能够快速获得他们需要的内容。您可以使用它来创建独立的Java应用程序,可以使用'java -jar'
启动,或者使用更传统的WAR部署。我们还提供了一个运行“Spring脚本”的命令行工具。
下图显示了Spring Boot作为更大Spring生态系统中的一个焦点。它为用户提供了一个较小的接触面,以便从Spring的其余部分获取价值。
Spring Boot的主要目标是:
Spring Boot *不会*生成代码,并且绝对**不需要**XML配置。
Spring Boot附带一个小的命令行应用程序,可用于运行“Spring脚本”。Spring脚本是用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);
}
}
除了导入语句之外,此示例与之前的Groovy脚本之间的主要区别在于调用SpringApplication
的main()
方法和@EnableAutoConfiguration
注解。
显然,使用Java还需要一个构建系统来编译和打包您的代码。我们提供了一些方便的“启动器”POM,您可以将它们与Maven、Gradle或Ant+Ivy一起使用,以快速获取相应的依赖项。例如,上面的应用程序只需要一个到spring-boot-starter-web
模块的依赖项。
我们还提供Maven和Gradle插件,允许您打包一个完全自包含的“胖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项目页面,您可以在其中找到详细说明。我们正在积极寻求早期反馈,因此请随时提出问题或派生存储库并提交拉取请求。
尽快预订您在圣克拉拉SpringOne的座位。这是亲身体验所有正在发生的事情并提供直接反馈的最佳机会。今年预计会有许多重要的新的公告。查看最近的博客文章以了解我的意思,并且还有更多内容即将到来!