领先一步
VMware 提供培训和认证,以加速您的进步。
了解更多欢迎来到2014年!2013年对Spring来说是激动人心的一年,我们期待着又一个伟大的年份。我们在最近的一些帖子中重点关注了客户端开发,包括我们发布了一些新的客户端入门指南。在之前的帖子中,我还回顾了使用Spring Boot提供静态 Web 内容是多么容易提供静态 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 归档)文件格式,该格式用于将许多类文件及其关联的元数据打包到单个文件中。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 项目页面和入门指南目录。