Maison > Java > javaDidacticiel > Comment explorer les règles de mappage des ressources statiques via le code source

Comment explorer les règles de mappage des ressources statiques via le code source

醉折花枝作酒筹
Libérer: 2021-05-06 09:36:49
avant
2301 Les gens l'ont consulté

Cet article vous présentera comment explorer les règles de mappage de ressources statiques via le code source. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Comment explorer les règles de mappage des ressources statiques via le code source

Spring Boot - Explorez les règles de mappage des ressources statiques via le code source

Lorsque nous développons un projet Spring Boot, nous devons importer de nombreuses ressources statiques, telles que comme css, js et autres fichiers

Si nous sommes une application Web, il y aura une webapp sous notre main. Nous avions l'habitude d'y importer toutes les pages, n'est-ce pas ! Mais qu'en est-il de notre pom actuel, la méthode d'empaquetage est jar, alors SpringBoot peut-il écrire des pages pour nous de cette manière ? Bien sûr, c'est possible, mais SpringBoot a des réglementations sur l'emplacement des ressources statiques !

Règles de mappage des ressources statiques

La première règle de mappage

Dans SpringBoot, la configuration Web de SpringMVC se trouve dans la classe de configuration WebMvcAutoConfiguration ;

Il existe de nombreuses méthodes de configuration dans WebMvcAutoConfigurationAdapter ; l'une d'elles consiste à ajouter des méthodes de traitement des ressources : addResourceHandlers (), le code source est le suivant.

@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));
				}
			});
		}
Copier après la connexion

WebJars consiste à regrouper les ressources du client (navigateur) (JavaScript, Css, etc.) dans des fichiers de package jar pour effectuer une gestion unifiée des dépendances des ressources. Le package jar de WebJars est déployé sur le référentiel central Maven.

Nous pouvons accéder au site officiel des webjars pour trouver les ressources dont nous avons besoin, ajouter des dépendances maven à nos projets, puis utiliser ces ressources directement.

Par exemple, nous voulons importer des ressources jquery

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.6.0</version></dependency>
Copier après la connexion

Après l'importation, nous pouvons trouver l'emplacement de stockage de la ressource via le chemin de la ressource et y accéder. nous importons sur le site Web des webjars, tous sont conformes à La structure dans l'image ci-dessous

Comment explorer les règles de mappage des ressources statiques via le code source

est accessible via le chemin et la ressource statique est accessible avec succès !

Comment explorer les règles de mappage des ressources statiques via le code source

La deuxième règle de mappage

Continuons à analyser le code source

Comment explorer les règles de mappage des ressources statiques via le code source

getStaticPathpattern() : obtenez le modèle de chemin statique, cliquez dedans et regardez le code source

public String getStaticPathPattern() {
		return this.staticPathPattern;
	}
Copier après la connexion

Regardez le code source de staticPathPattern

Comment explorer les règles de mappage des ressources statiques via le code source

/** est le répertoire courant Toutes les ressources statiques du répertoire courant peuvent être identifiées, mais à quoi fait-elle référence exactement dans le répertoire courant ? On peut le voir en cliquant sur le code source de resourceProperties. Le code source est le suivant :

Comment explorer les règles de mappage des ressources statiques via le code source

Le code source ci-dessus donne clairement nos quatre chemins de ressources statiques, donc tant que les ressources statiques dans ces quatre répertoires le sont, elles peuvent être obtenu directement.

Testons-le, complétons d'abord le répertoire ci-dessus, puis mettons une ressource js dans le répertoire des ressources

Comment explorer les règles de mappage des ressources statiques via le code source

Démarrez le test de l'application Springboot : accédez avec succès au ressource statique !

Comment explorer les règles de mappage des ressources statiques via le code source

Les ressources statiques stockées dans les quatre répertoires suivants peuvent être identifiées par nous :

"classpath:/META-INF/resources/""classpath:/resources/""classpath:/static/""classpath:/public/"
Copier après la connexion

Remarque :

  • Chapitre Le chemin d'accès d'un répertoire est localhost:8080/webjars/resource structure de répertoires, et les trois chemins d'accès suivants sont localhost:8080/resource name

  • La priorité de la deuxième règle de mappage est :resources>static (par défaut)>public

Chemin de ressource statique personnalisé

Nous pouvons spécifier les dossiers que nous devons insérer via le fichier de configuration. les fichiers sont configurés dans application.properties ;

spring.resources.static-locations=classpath:/coding/,classpath:/cheng/
Copier après la connexion

Cependant, nous pouvons voir dans le code source ci-dessous que si le chemin de la ressource est personnalisé, les quatre chemins par défaut ci-dessus ne seront pas valides, il est donc préférable de ne pas personnaliser le chemin, utilisez simplement Springboot pour le configurer automatiquement pour nous.

if (!this.resourceProperties.isAddMappings()) {
				logger.debug("Default resource handling disabled");
				return;
			}
Copier après la connexion

Recommandations d'apprentissage gratuites associées : Tutoriel de base Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal