Dieser Artikel führt Sie in die Methode zum Erkunden statischer Ressourcenzuordnungsregeln anhand des Quellcodes ein. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
Spring Boot – Erkunden Sie die Zuordnungsregeln statischer Ressourcen anhand des Quellcodes
Wenn wir ein Spring Boot-Projekt entwickeln, müssen wir viele statische Ressourcen wie CSS, JS und andere Dateien importieren
Wenn wir ein Web sind Anwendung, wir werden eine Webapp unter der Hauptanwendung haben. Früher haben wir alle Seiten darin importiert, richtig! Aber was ist mit unserem aktuellen Pom? Die Verpackungsmethode ist JAR. Kann SpringBoot also auf diese Weise Seiten für uns schreiben? Natürlich ist es möglich, aber SpringBoot hat Vorschriften zum Speicherort statischer Ressourcen!
Statische Ressourcenzuordnungsregeln
Die erste Zuordnungsregel
In SpringBoot befindet sich die Webkonfiguration von SpringMVC in der Konfigurationsklasse WebMvcAutoConfiguration; eine davon besteht darin, eine Ressourcenverarbeitungsmethode hinzuzufügen: addResourceHandlers (), der Quellcode lautet wie folgt.
@Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { super.addResourceHandlers(registry); if (!this.resourceProperties.isAddMappings()) { logger.debug("Default resource handling disabled"); return; } ServletContext servletContext = getServletContext(); addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/"); addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> { registration.addResourceLocations(this.resourceProperties.getStaticLocations()); if (servletContext != null) { registration.addResourceLocations(new ServletContextResource(servletContext, SERVLET_LOCATION)); } }); }
WebJars besteht darin, Client-(Browser-)Ressourcen (JavaScript, CSS usw.) in JAR-Paketdateien zu packen, um eine einheitliche Abhängigkeitsverwaltung von Ressourcen zu erreichen. Das JAR-Paket von WebJars wird im zentralen Maven-Repository bereitgestellt.
Wir können auf der offiziellen Webjars-Website nach den benötigten Ressourcen suchen, Maven-Abhängigkeiten zu unseren Projekten hinzufügen und diese Ressourcen dann direkt verwenden.
Zum Beispiel möchten wir Jquery-Ressourcen importieren
<dependency> <groupId>org.webjars</groupId> <artifactId>jquery</artifactId> <version>3.6.0</version></dependency>
Die zweite Zuordnungsregel
Lassen Sie uns den Quellcode weiter analysierengetStaticPathpattern(): Holen Sie sich das statische Pfadmuster, klicken Sie hinein, um einen Blick auf den Quellcode zu werfen
public String getStaticPathPattern() { return this.staticPathPattern; }
bedeutet, dass alle statischen Ressourcen im aktuellen Verzeichnis identifiziert werden können, aber worauf genau bezieht sich das aktuelle Verzeichnis? Wir können es sehen, indem wir auf den Quellcode von resourcesProperties klicken. Der Quellcode lautet wie folgt:
Der obige Quellcode gibt unsere vier statischen Ressourcenpfade klar an. Solange die statischen Ressourcen in diesen vier Verzeichnissen verfügbar sind, können sie direkt abgerufen werden.
Testen wir es, füllen Sie zuerst das obige Verzeichnis aus und legen Sie dann eine js-Ressource im Ressourcenverzeichnis ab. /**
Die in den folgenden vier Verzeichnissen gespeicherten statischen Ressourcen können von uns identifiziert werden:
"classpath:/META-INF/resources/""classpath:/resources/""classpath:/static/""classpath:/public/"
Der Zugriffspfad des ersten Verzeichnisses ist die Verzeichnisstruktur localhost:8080/webjars/resource und die folgende drei Zugriffspfade Für localhost:8080/Ressourcenname
Die Priorität der zweiten Zuordnungsregel ist: resources>static (Standard)>public
Passen Sie den statischen Ressourcenpfad an
spring.resources.static-locations=classpath:/coding/,classpath:/cheng/
Aus dem Quellcode unten können wir jedoch ersehen, dass die oben genannten vier Standardpfade ungültig sind, wenn der Ressourcenpfad angepasst wird. Daher ist es am besten, den Pfad nicht anzupassen, sondern einfach Springboot zu verwenden, um ihn automatisch für uns zu konfigurieren.
if (!this.resourceProperties.isAddMappings()) { logger.debug("Default resource handling disabled"); return; }
Java Basic Tutorial
Das obige ist der detaillierte Inhalt vonSo erkunden Sie die Zuordnungsregeln statischer Ressourcen anhand des Quellcodes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!