Anleitung zum Favicon im Spring Boot

Anleitung zum Favicon in Spring Boot

1. Überblick

Ein Favicon ist ein kleines Website-Symbol, das in einem Browser normalerweise neben einer Adresse angezeigt wird.

Oft möchten wir uns nicht mit den Standard-Frameworks zufrieden geben, die von verschiedenen Frameworks wie Spring Boot bereitgestellt werden.

In diesem kurzen Tutorial werden wir uns mitcustomize the favicon of a Spring Boot application befassen, indem wir verschiedene Ansätze zum Anpassen des Favicons untersuchen.

2. Das Favicon überschreiben

Der einfachste Weg, das Standardfavicon einer Spring Boot-Anwendung zu überschreiben, istplace the new favicon in the resources directory:

src/main/resources/favicon.ico

Die Favicon-Datei sollte den Namen „favicon.ico”“ haben.

Wir können diese Datei auch im Verzeichnisstaticim Ressourcenverzeichnis des Projekts ablegen:

src/main/resources/static/favicon.ico

Spring Boot sucht beim Start nach derfavicon.ico -Datei am Speicherort der Stammressourcen, gefolgt von statischen Inhaltsspeicherorten.

3. Verwenden eines benutzerdefinierten Speicherorts

Anstatt das Favicon im Stammverzeichnis des Ressourcenverzeichnisses abzulegen, möchten wir es möglicherweise zusammen mit anderen Abbildern der Anwendung behalten.

Wir können dies tun, indem wir das Standard-Favicon in unsererapplication.properties -Datei deaktivieren:

spring.mvc.favicon.enabled=false

Und dann implementieren wir unseren Handler:

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

Beachten Sie, dass wirInteger.MIN_VALUE  für die Zuordnungsreihenfolge festgelegt haben. Geben Sie diesem Handler daher die höchste Priorität.

Bei dieser Konfiguration istwe can store our favicon file at any location within application structure.

4. Favicon anmutig deaktivieren

Wenn wir kein Favicon für unsere Anwendung möchten, können wir es deaktivieren, indem wir die Eigenschaftspring.mvc.favicon.enabled to false setzen. Dabei wird jedoch beim Aufrufen des Browsers die Fehlermeldung "404 Not Found" (404 nicht gefunden) angezeigt.

Wir können dies mita custom favicon controller, that returns an empty response vermeiden:

//...

@Controller
static class FaviconController {

    @GetMapping("favicon.ico")
    @ResponseBody
    void returnNoFavicon() {
    }
}

//...

5. Fazit

In diesem Artikel haben wir gesehen, wie Sie das Standard-Favicon einer Spring-Boot-Anwendung überschreiben, einen benutzerdefinierten Speicherort für das Favicon verwenden und den 404-Fehler vermeiden, wenn Sie kein Favicon verwenden möchten.

Wie immer sind die Codebeispieleover on GitHub. verfügbar