Guide du Favicon dans Spring Boot

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.