Руководство по Favicon в Spring Boot

Руководство по Favicon в весенней загрузке

1. обзор

Фавикон - это небольшой значок веб-сайта, отображаемый в браузере, обычно рядом с адресом.

Часто мы не хотим довольствоваться настройками по умолчанию, предоставляемыми различными фреймворками, такими как Spring Boot.

В этом кратком руководстве мы обсудим, как использоватьcustomize the favicon of a Spring Boot application, рассмотрев различные подходы к настройке значка.

2. Переопределение Favicon

Самый простой способ переопределить значок по умолчанию для приложения Spring Boot - этоplace the new favicon in the resources directory:

src/main/resources/favicon.ico

Файл значка должен иметь имя «favicon.ico”.

Мы также можем поместить этот файл в каталогstatic внутри каталога ресурсов проекта:

src/main/resources/static/favicon.ico

Spring Boot при запуске сканирует s-файлfavicon.ico в расположении корневых ресурсов, за которым следуют местоположения статического содержимого.

3. Использование пользовательского местоположения

Вместо того, чтобы помещать значок в корневой каталог ресурсов, мы могли бы сохранить его вместе с другими образами приложения.

Мы можем сделать это, отключив значок по умолчанию в нашем s-файлеapplication.properties :

spring.mvc.favicon.enabled=false

А затем реализуем наш обработчик:

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

Обратите внимание, что мы установилиInteger.MIN_VALUE  для порядка отображения, поэтому дайте этому обработчику наивысший приоритет.

В этой конфигурацииwe can store our favicon file at any location within application structure.

4. Изящно отключить Фавикон

Если нам не нужен какой-либо значок для нашего приложения, мы можем отключить его, установив для свойстваspring.mvc.favicon.enabled to значение false. Но при этом при поиске в браузере появляется ошибка «404 Not Found».

Этого можно избежать с помощьюa custom favicon controller, that returns an empty response:

//...

@Controller
static class FaviconController {

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

//...

5. Заключение

В этой статье мы увидели, как переопределить значок по умолчанию загрузочного приложения Spring, использовать пользовательское расположение для значка и, как избежать ошибки 404, если мы не хотим использовать значок.

Как всегда доступны образцы кодаover on GitHub.