使用Webjars在SpringBoot2中应用Twitter Bootstrap5

开端

在使用Thymeleaf创建应用程序时,我希望为每个应用程序定义版本,因此这是关于当时操作的备忘录。

引入 WebJars。

我正在使用Gradle。请参考附录中后续描述的build.gradle文件。在依赖中添加以下内容。

implementation group: 'org.webjars', name: 'bootstrap', version: '5.1.3'

HTML模板

使用WebJars指定Bootstrap的CSS/JavaScript如下:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport"
          content="width=device-width, initial-scale=1, shrink-to-fit=no" />
    <title>Title</title>
    <link rel="stylesheet" th:href="@{/webjars/bootstrap/5.1.3/css/bootstrap.min.css}" />
</head>
<body>
<div th:text="${hello}"></div>
<script th:src="@{/webjars/bootstrap/5.1.3/js/bootstrap.min.js}"></script>
</body>
</html>

Thymeleaf中的指定方法是@{/webjars/引入包/版本/资源路径}。

从Spring Boot的配置中提取版本指定。

我们可以通过在SpringBoot的配置中读取而不是直接在模板中写入Bootstrap的版本。下面是一个使用SpringBoot配置(application.yml)来获取该值,并在Thymeleaf中使用的示例。

设置 (shè

webjars:
  bootstrap: 5.1.3

读取设定好的webjars

有几种方法可以实现,但本次我们将把一个设定类标记为@Component,由Spring来管理bean。

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import lombok.Data;

@Component
@ConfigurationProperties(prefix = "webjars")
@Data
public class WebjarsConfig {
	private String bootstrap;
}

HTML模板(Thyemeleaf)

请注意设置锚点URL的方法以及从Spring管理的bean中引用值的方法。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport"
          content="width=device-width, initial-scale=1, shrink-to-fit=no" />
    <title>Title</title>
    <link rel="stylesheet" th:href="@{/webjars/bootstrap/{version}/css/bootstrap.min.css(version=${@webjarsConfig.bootstrap})}" />
</head>
<body>
<div th:text="${hello}"></div>
<script th:src="@{/webjars/bootstrap/{version}/js/bootstrap.min.js(version=${@webjarsConfig.bootstrap})}"></script>
</body>
</html>

在th:src中设置变量的方法是使用{ }将变量括起来,并在URL的末尾使用(变量=${绑定在Spring中的值})进行指定。

由于Thymeleaf位于SpringBoot内部,因此可以从Spring的ApplicationContext中引用。因此,由于在先前的WebjarsConfig中进行了无名称的@Component设置,所以引用的名称将是webjarsConfig。

附录

验证环境

Windows11 / SpringBoot 2.6.6 / Java 17 可以被简述为:
Windows11 / 技术框架SpringBoot的版本为2.6.6,所使用的编程语言为Java 17。

构建.gradle

plugins {
	id 'org.springframework.boot' version '2.6.6'
	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
	id 'java'
}

group = 'com.github.apz'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	
	// https://mvnrepository.com/artifact/org.webjars/bootstrap
	implementation group: 'org.webjars', name: 'bootstrap', version: '5.1.3'
}

tasks.named('test') {
	useJUnitPlatform()
}

请查阅相关文献。

    • WebJars 使い方メモ

 

    Thymeleaf3:4.4 Link URLs
广告
将在 10 秒后关闭
bannerAds