In diesem Artikel wird hauptsächlich die Verarbeitungsmethode für das statische Laden von Ressourcen in Spring Boot vorgestellt
1 Spring Boot bietet uns standardmäßig eine statische Ressourcenverarbeitung unter Verwendung verschiedener in WebMvcAutoConfiguration konfigurierter Eigenschaften.
Der Standardpfad für Spring Boot zum Laden von Dateien ist:
/META-INF/resources/
/resources//static/
/public/
Unter diesen Verzeichnissen können wir natürlich auch den Java-Code aus dem Spring-Boot-Quellcode sehen:
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { "classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/" };
Die Reihenfolge lautet: META-INF/resources > resources > static > Alle lokalen statischen Ressourcen werden unter dem Klassenpfad konfiguriert, nicht unter der Webanwendung. Wenn der von Spring Boot bereitgestellte Sping MVC die Anforderungen nicht erfüllt, können Sie eine vollständig kontrollierte MVC-Konfiguration über eine Konfigurationsklasse (eine mit @Configuration annotierte Klasse) und die Annotation @EnableWebMvc erreichen.
Unter normalen Umständen erfüllt die automatische Konfiguration von Spring Boot natürlich die meisten unserer Anforderungen. Wenn Sie den Komfort von Spring Boot beibehalten und Ihre eigene zusätzliche Konfiguration hinzufügen möchten, können Sie eine Konfigurationsklasse definieren und
WebMvcConfigurerAdapter erben, ohne die Annotation @EnableWebMvc zu verwenden. Wenn @EnableWebMvc verwendet wird, deckt es automatisch die offiziellen Verzeichnisse /static, /public, META-INF/resources, /resources und andere zum Speichern statischer Ressourcen ab. 2. Benutzerdefinierte RessourcenzuordnungHier erwähnen wir die WebMvcConfigurerAdapter-Klasse, die es uns ermöglicht, zusätzliche Konfigurationen hinzuzufügen. Hier stellen wir einige häufig verwendete vor. Benutzerdefinierte Ressourcenzuordnung addResourceHandlers
Wenn wir beispielsweise das statische Ressourcenzuordnungsverzeichnis anpassen möchten, müssen wir nur die Methode addResourceHandlers neu schreiben.
Fügen Sie den Zuordnungspfad über addResourceHandler hinzu und geben Sie dann den Pfad über addResourceLocations an.
Wenn wir /myresource/* in /* ändern, was der Standardeinstellung entspricht, wird die Systemkonfiguration überschrieben. Sie können addResourceLocations mehrmals verwenden, um Verzeichnisse hinzuzufügen. Die zuerst hinzugefügte Priorität ist höher als die später hinzugefügt.
@Configuration public class SimpleWebAppConfigurer extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/myresource/**").addResourceLocations("classpath:/myresource/"); super.addResourceHandlers(registry); } }
Wenn wir einen absoluten Pfad zum Ordner angeben möchten (z. B. H:/images/), dann müssen Sie es nur mit addResourceLocations angeben. wird über die
Konfigurationsdateikonfiguriert. Der obige Code verwendet, um die Zuordnung statischer Ressourcen zu definieren. Tatsächlich bietet uns Spring Boot auch die Möglichkeit, die Anwendung direkt zu konfigurieren .properties (oder .yml)-Konfigurationsmethode.
// 可以直接使用addResourceLocations 指定磁盘绝对路径,同样可以配置多个位置,注意路径写法需要加上file: registry.addResourceHandler("/myimgs/**").addResourceLocations("file:H:/myimgs/");
Verwenden Sie spring.resources.static-locations, um den Pfad, auf den das Muster zeigt, neu zu definieren, und unterstützen Sie dabei classpath: und file: (bereits oben erläutert)
Beachten Sie, dass spring.mvc.static-path-pattern nur eine definieren kann und derzeit nicht mehrere durch Kommas getrennte Methoden unterstützt.
# 默认值为 /** spring.mvc.static-path-pattern=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ spring.resources.static-locations=这里设置要指向的路径,多个使用英文逗号隔开
Kostenlose Java-Video-Tutorials
2. Umfassende Analyse von Java-AnnotationenAlibaba Java-EntwicklungshandbuchDas obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Beispielen zum Laden statischer Ressourcen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!