Guide de la Favicon dans Spring Boot
1. Vue d'ensemble
Un favicon est une petite icône de site Web affichée dans un navigateur, généralement à côté d'une adresse.
Souvent, nous ne voulons pas nous contenter de ceux par défaut fournis par divers frameworks tels que Spring Boot.
Dans ce rapide didacticiel, nous allons expliquer commentcustomize the favicon of a Spring Boot application, en examinant différentes approches pour personnaliser le favicon.
2. Remplacer le Favicon
Le moyen le plus simple de remplacer le favicon par défaut d'une application Spring Boot est deplace the new favicon in the resources directory:
src/main/resources/favicon.ico
Le fichier favicon doit avoir le nom «favicon.ico”.
Nous pouvons également placer ce fichier dans le répertoirestatic du répertoire des ressources du projet:
src/main/resources/static/favicon.ico
Spring Boot lors du démarrage, recherche le fichierfavicon.ico dans l'emplacement des ressources racine suivi des emplacements de contenu statiques.
3. Utiliser un emplacement personnalisé
Au lieu de placer le favicon dans le répertoire racine du répertoire des ressources, nous voudrons peut-être le conserver avec les autres images de l'application.
Nous pouvons le faire en désactivant le favicon par défaut dans notre fichierapplication.properties :
spring.mvc.favicon.enabled=false
Et puis en mettant en place notre gestionnaire:
@Configuration
public class FaviconConfiguration {
@Bean
public SimpleUrlHandlerMapping customFaviconHandlerMapping() {
SimpleUrlHandlerMapping mapping = new SimpleUrlHandlerMapping();
mapping.setOrder(Integer.MIN_VALUE);
mapping.setUrlMap(Collections.singletonMap(
"/favicon.ico", faviconRequestHandler()));
return mapping;
}
@Bean
protected ResourceHttpRequestHandler faviconRequestHandler() {
ResourceHttpRequestHandler requestHandler
= new ResourceHttpRequestHandler();
ClassPathResource classPathResource
= new ClassPathResource("images");
List locations = Arrays.asList(classPathResource);
requestHandler.setLocations(locations);
return requestHandler;
}
}
Notez que nous avons définiInteger.MIN_VALUE pour l'ordre de mappage, donnez donc à ce gestionnaire la priorité la plus élevée.
Avec cette configuration,we can store our favicon file at any location within application structure.
4. Désactiver gracieusement Favicon
Si nous ne voulons pas de favicon pour notre application, nous pouvons le désactiver en définissant la propriétéspring.mvc.favicon.enabled to false. Mais avec cela, lorsque les navigateurs consultent, ils obtiennent une erreur «404 non trouvé».
Nous pouvons éviter cela aveca custom favicon controller, that returns an empty response:
//...
@Controller
static class FaviconController {
@GetMapping("favicon.ico")
@ResponseBody
void returnNoFavicon() {
}
}
//...
5. Conclusion
Dans cet article, nous avons vu comment remplacer le favicon par défaut d'une application de démarrage Spring, utiliser un emplacement personnalisé pour le favicon et comment éviter l'erreur 404 si nous ne souhaitons pas utiliser un favicon.
Comme toujours, les exemples de code sont disponiblesover on GitHub.