领先一步
VMware 提供培训和认证,助您加速进步。
了解更多欢迎来到 2014 年!2013 年是 Spring 激动人心的一年,我们期待又一个伟大的一年。我们最近在几篇文章中关注了客户端开发,包括我们发布了几篇新的客户端入门指南。在上一篇文章中,我还回顾了使用Spring Boot提供静态 Web 内容有多么容易。
在本文中,我将继续讨论使用 Spring Boot 进行客户端开发,并探索另一个内置功能。我上一篇文章中包含以下摘录,摘自 源代码,关于 WebMvcAutoConfiguration,它说明了在使用 Spring Boot 时,静态资源是如何自动添加到 Spring MVC 的 ResourceHandlerRegistry 中的。
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
if (!registry.hasMappingForPattern("/webjars/**")) {
registry.addResourceHandler("/webjars/**").addResourceLocations(
"classpath:/META-INF/resources/webjars/");
}
if (!registry.hasMappingForPattern("/**")) {
registry.addResourceHandler("/**").addResourceLocations(
RESOURCE_LOCATIONS);
}
}
在上一篇文章中,我没有讨论代码的“webjars”资源处理程序这一方面。你可能在想,“这听起来不错,但 WebJars 是什么?”
作为一名 Java 开发人员,你可能熟悉 JAR(Java Archive)文件格式,它用于将许多类文件及其关联的元数据打包成一个文件。WebJars 只是将 JAR 的概念应用于客户端库或资源。例如,jQuery 库可以被打包成一个 JAR,并提供给你的 Spring MVC 应用程序使用。使用 WebJars 有几个好处,包括支持 Gradle 和 Maven 等 Java 构建工具。通过使用构建工具中的依赖管理,传递性依赖会自动为你处理。
也许你想在你的网页中添加一个 jQuery 动画。使用 “使用 Spring MVC 提供 Web 内容”指南作为起点,修改 build.gradle 文件以包含 jQuery 依赖。许多 WebJars 可以通过 Maven Central 获取,其 GroupID 为 org.webjars。完整的列表可在 webjars.org 上找到。
buildscript {
repositories {
maven { url "http://repo.spring.io/libs-milestone" }
mavenLocal()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:0.5.0.M6")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'
jar {
baseName = 'gs-serving-web-content'
version = '0.1.0'
}
repositories {
mavenCentral()
maven { url "http://repo.spring.io/libs-milestone" }
}
dependencies {
compile("org.springframework.boot:spring-boot-starter-web:0.5.0.M6")
compile("org.thymeleaf:thymeleaf-spring3:2.0.17")
compile("org.webjars:jquery:2.0.3-1")
testCompile("junit:junit:4.11")
}
task wrapper(type: Wrapper) {
gradleVersion = '1.8'
}
添加依赖后,你可以在 HTML 中引用 jQuery WebJar,并利用它来为段落标签中的文本添加动画。请注意 jQuery 依赖的位置!
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Getting Started: Serving Web Content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="webjars/jquery/2.0.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('p').animate({
fontSize: '48px'
}, "slow");
});
</script>
</head>
<body>
<p th:text="'Hello, ' + ${name} + '!'" />
</body>
</html>
JavaScript 包管理并非一个新概念。事实上,npm 和 bower 是两个比较流行的工具,目前提供了管理 JavaScript 依赖的解决方案。Spring 的 “理解 JavaScript 包管理器”指南提供了更多关于这些的信息。大多数 JavaScript 开发人员可能熟悉 npm 和 bower,并在他们的项目中使用它们。相比之下,WebJars 利用 Maven 的依赖管理模型将 JavaScript 库包含在项目中,这使得 Java 开发人员更容易上手。
Spring Boot 提供了一种简单的方式来构建几乎无需配置的 Spring 应用程序。本文说明了在 Spring MVC 应用程序中使用 WebJars 是多么简单,以及 WebJars 如何提供一种便捷的方式来管理 JavaScript 包和依赖。更多信息请参阅 Spring Boot 项目页面和 入门指南目录。