[JAVA] Wenden Sie Twitter Bootstrap 4 mithilfe von Webjars auf Spring Boot 2 an

Auslösen

Beim Erstellen einer Anwendung mit Thymeleaf wollte ich die Version für jede Anwendung definieren, daher ist dies zu diesem Zeitpunkt eine Arbeitsnotiz.

Einführung in WebJars

Dieses Mal werde ich Maven verwenden. BootStrap4 verfügt über eine Funktion, die zusätzlich zu ihrem eigenen Stylesheet jQuery verwendet. Geben Sie daher die entsprechende Version an. Informationen zu pom.xml finden Sie im Anhang unten.

HTML-Vorlage

Die CSS / JavaScript-Spezifikationen für Bootstrap mit WebJars lauten wie folgt.

index.html


<!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/4.2.1/css/bootstrap.min.css}" />
</head>
<body>
<div th:text="${hello}"></div>
<script th:src="@{/webjars/jquery/3.3.1-1/jquery.min.js}"></script>
<script th:src="@{/webjars/bootstrap/4.2.1/js/bootstrap.min.js}"></script>
</body>
</html>

Die Spezifikationsmethode in Thymeleaf lautet "@ {/ webjars / Installationspaket / Version / Pfad zur Ressource}".

Ziehen Sie die Versionsspezifikation aus den Spring Boot-Einstellungen

Anstatt die Bootstrap- oder jQuery-Version in der Vorlage festzulegen, können Sie sie auch in den Spring-Einstellungen lesen. Das folgende Beispiel beschreibt die Spring-Einstellungen in application.yml und liest diesen Inhalt.

Aufbau

application.yml


webjars:
  bootstrap: "4.2.1"
  jquery: "3.3.1-1"

Lesen Sie die eingestellten Webjars

Es gibt verschiedene Möglichkeiten, aber dieses Mal wird eine Konfigurationsklasse in der Spring Management Bean als "@ Component" behandelt.

WebjarsConfig.java


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;
	private String jquery;
}

HTML-Vorlage (Thymeleaf)

Beachten Sie, wie Sie die Anker-URL festlegen und auf den Wert aus der Spring Management Bean verweisen.

index.html


<!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/jquery/{version}/jquery.min.js(version=${@webjarsConfig.jquery})}"></script>
<script th:src="@{/webjars/bootstrap/{version}/js/bootstrap.min.js(version=${@webjarsConfig.bootstrap})}"></script>
</body>
</html>

Um eine Variable in th: src festzulegen, schließen Sie die Variable in {} ein und geben Sie sie am Ende der URL an (Variable = $ {Wert gebunden von Spring}).

Da wir die WebjarsConfig früher ohne den Namen "@ Component" festgelegt haben, lautet der referenzierte Name "webjarsConfig".

Appendix

Überprüfungsumgebung

Windows10 / SpringBoot 2.1.2

pom.xml

pom.xml


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.github.a-pz</groupId>
	<artifactId>spring-thymeleaf-bootstrap4</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>spring-thymeleaf-bootstrap4</name>
	<description>spring-thymeleaf-bootstrap4</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.2.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.webjars</groupId>
			<artifactId>bootstrap</artifactId>
			<version>4.2.1</version>
		</dependency>
		<dependency>
			<groupId>org.webjars</groupId>
			<artifactId>jquery</artifactId>
			<version>3.3.1-1</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-configuration-processor</artifactId>
			<optional>true</optional>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>


</project>

Referenzmaterial

Recommended Posts

Wenden Sie Twitter Bootstrap 4 mithilfe von Webjars auf Spring Boot 2 an
Versuchen Sie Spring Boot von 0 bis 100.
Einführung in Spring Boot ~ ~ DI ~
Einführung in Spring Boot ② ~ AOP ~
Einführung in Spring Boot Teil 1
Versuchen Sie es mit Spring Boot Security
Stellen Sie Spring Boot-Anwendungen für Heroku bereit, ohne die Heroku-CLI zu verwenden
Ich habe versucht, mit Swagger mit Spring Boot zu beginnen
8 Dinge, die mit Spring Boot und JPA in die DB eingefügt werden müssen
So steuern Sie Transaktionen in Spring Boot ohne Verwendung von @Transactional
Spring Boot Tutorial Verwenden der Spring Security-Authentifizierung
So stellen Sie Spring Boot + PostgreSQL ein
Verwendung von ModelMapper (Spring Boot)
Rüsten Sie den Federstiefel von der 1.5-Serie auf die 2.0-Serie auf
So erstellen Sie mit SPRING INITIALIZR einen Hinadan für ein Spring Boot-Projekt
[Einführung in Spring Boot] Überprüfung der Formularvalidierung
Java-Anfänger haben versucht, mit Spring Boot eine einfache Webanwendung zu erstellen
Versuchen Sie es mit Spring Boot mit VS-Code
Die Geschichte des Übergangs von Spring Boot 1.5 zu 2.1
Änderungen bei der Migration von Spring Boot 1.5 auf Spring Boot 2.0
Änderungen bei der Migration von Spring Boot 2.0 zu Spring Boot 2.2
Memo zur Installationsmethode von Spring Boot + Thymeleaf Boot Strap
Schritte zum Erstellen einer einfachen Kamel-App mit Apache Camel Spring Boot-Startern
So teilen Sie eine Spring Boot-Nachrichtendatei
Fügen Sie Frühlingsstiefel und Gradle zur Sonnenfinsternis hinzu
[FCM] Implementierung der Nachrichtenübertragung mit FCM + Spring Boot
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
Verwendung des eingebauten h2db mit Federstiefel
So verkleinern Sie das Spring Boot Docker-Image
Verwendung von Spring Boot-Sitzungsattributen (@SessionAttributes)
Erstellen Sie eine Spring Boot-Anwendung mit IntelliJ IDEA
Die Geschichte der Erhöhung der Spring Boot 1.5-Serie auf die 2.1-Serie
Versuchen Sie, die Anmeldefunktion mit Spring Boot zu implementieren
So fügen Sie in Spring Boot einen Klassenpfad hinzu
Einführung in Spring Boot + In-Memory Data Grid
So binden Sie mit einer Eigenschaftendatei in Spring Boot
Versuchen Sie, die Migration mit Spring Boot Flyway zu automatisieren
[Java] Artikel zum Hinzufügen einer Validierung mit Spring Boot 2.3.1.
Ich wollte Spring Boot in einem Multiprojekt gradle
[Spring Boot] So verweisen Sie auf die Eigenschaftendatei
Wenden Sie automatisch den Bootstrap-Stil an, um Ansichtsdateien zu erstellen
[Einführung in Spring Boot] Authentifizierungsfunktion mit Spring Security
Spring Boot - So stellen Sie das Sitzungszeitlimit ein
Fordern Sie Spring Boot heraus
Spring Boot Form
Spring Boot Denken Sie daran
gae + frühlingsstiefel
Pläne zur Unterstützung von JDK 11 für Eclipse und Spring Boot
Einstellungen für die Verbindung zu MySQL mit Spring Boot + Spring JDBC
Testen von JPA-Entitäten und -Repositorys mit Spring Boot @DataJpaTest
Versuchen Sie es mit einem DI-Container mit Laravel und Spring Boot
So stellen Sie Spring Boot Dependency Injection (DI) ein
So wenden Sie HandlerInterceptor auf das http-Inbound-Gateway von Spring Integration an
So schreiben Sie einen Komponententest für Spring Boot 2
Wenn Sie die Spring Boot + Thymeleaf-Verarbeitung trennen möchten
Ein Memorandum über die Sucht nach Spring Boot2 x Doma2
Versuchen Sie, OpenID Connect mit Keycloak (Spring Boot-Anwendung) zu verwenden.
05. Ich habe versucht, die Quelle von Spring Boot zu löschen
[JUnit 5-kompatibel] Schreiben Sie einen Test mit JUnit 5 mit Spring Boot 2.2, 2.3