领先一步
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 有几个好处,包括支持 Java 构建工具,如 Gradle 和 Maven。 并且通过在构建工具中使用依赖管理,会自动为您处理传递依赖项。
也许您想向您的网页添加一个 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 项目页面 和 入门指南 目录。