1. Обзор
Фавикон-это небольшой значок веб-сайта, отображаемый в браузере, обычно рядом с адресом.
Часто мы не хотим довольствоваться стандартными, предоставляемыми различными фреймворками, такими как Spring Boot.
В этом кратком руководстве мы обсудим, как настроить favicon приложения Spring Boot , изучив различные подходы к настройке favicon.
2. Переопределение фавикона
Самый простой способ переопределить favicon по умолчанию приложения Spring Boot-это поместить новый favicon в каталог resources :
src/main/resources/favicon.ico
Файл favicon должен иметь имя ” favicon.ico” .
Мы также можем поместить этот файл в каталог static внутри каталога ресурсов проекта:
src/main/resources/static/favicon.ico
Spring Boot при запуске сканирует файл favicon.ico в корневом расположении ресурсов, а затем в расположении статического содержимого.
3. Использование пользовательского местоположения
Вместо того чтобы помещать фавикон в корневой уровень каталога ресурсов, мы могли бы сохранить его вместе с другими изображениями приложения.
Мы можем сделать это, отключив favicon по умолчанию в нашем файле application.properties :
spring.mvc.favicon.enabled=false
Стоит отметить, что начиная с Spring Boot 2.2 это свойство конфигурации устарело. Кроме того, Spring Boot больше не предоставляет фавикон по умолчанию, так как этот значок может быть классифицирован как утечка информации.
А затем реализуем наш обработчик:
@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("com/baeldung/images/"); Listlocations = Arrays.asList(classPathResource); requestHandler.setLocations(locations); return requestHandler; } }
Обратите внимание, что мы установили Целое число.MIN_VALUE для порядка отображения, поэтому дайте этому обработчику самый высокий приоритет.
С помощью этой конфигурации мы можем хранить ваш файл favicon в любом месте структуры приложения .
4. Изящно Отключите Favicon
Если нам не нужен какой-либо фавикон для нашего приложения, мы можем отключить его, установив свойство spring.mvc.favicon.enabled в false. Но при этом при поиске браузеров они получают ошибку “404 не найден”.
Мы можем избежать этого с помощью пользовательского контроллера favicon, который возвращает пустой ответ :
//... @Controller static class FaviconController { @GetMapping("favicon.ico") @ResponseBody void returnNoFavicon() { } } //...
5. Заключение
В этой статье мы увидели, как переопределить favicon по умолчанию приложения Spring boot, использовать пользовательское расположение для favicon и как избежать ошибки 404, если мы не хотим использовать favicon.
Как всегда, примеры кода доступны на GitHub.