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

醉折花枝作酒筹
醉折花枝作酒筹avant
2021-05-06 09:36:492417parcourir

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));
				}
			});
		}

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>

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;
	}

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/"

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/

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;
			}

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer