Guia para o Favicon no Spring Boot
1. Visão geral
Um favicon é um pequeno ícone de site exibido em um navegador, geralmente próximo a um endereço.
Muitas vezes, não queremos nos contentar com os padrões fornecidos por vários frameworks, como Spring Boot.
Neste tutorial rápido, discutiremos comocustomize the favicon of a Spring Boot application, analisando várias abordagens para personalizar o favicon.
2. Substituindo o Favicon
A maneira mais simples de substituir o favicon padrão de um aplicativo Spring Boot éplace the new favicon in the resources directory:
src/main/resources/favicon.ico
O arquivo favicon deve ter o nome “favicon.ico”.
Também podemos colocar esse arquivo no diretóriostatic dentro do diretório de recursos do projeto:
src/main/resources/static/favicon.ico
Spring Boot durante a inicialização, verifica o arquivofavicon.ico no local de recursos raiz seguido por locais de conteúdo estático.
3. Usando um local personalizado
Em vez de colocar o favicon no diretório raiz do nível de recursos, convém mantê-lo junto com outras imagens do aplicativo.
Podemos fazer isso desativando o favicon padrão em nossoapplication.properties file:
spring.mvc.favicon.enabled=false
E, em seguida, implementando nosso manipulador:
@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;
}
}
Observe que definimosInteger.MIN_VALUE para a ordem de mapeamento, portanto, dê a este manipulador a prioridade mais alta.
Com esta configuração,we can store our favicon file at any location within application structure.
4. Desabilitar graciosamente o Favicon
Se não quisermos nenhum favicon para nosso aplicativo, podemos desabilitá-lo definindo a propriedadespring.mvc.favicon.enabled to false. Mas com isso, quando os navegadores pesquisam, eles recebem um erro "404 não encontrado".
Podemos evitar isso coma custom favicon controller, that returns an empty response:
//...
@Controller
static class FaviconController {
@GetMapping("favicon.ico")
@ResponseBody
void returnNoFavicon() {
}
}
//...
5. Conclusão
Neste artigo, vimos como substituir o favicon padrão de um aplicativo de inicialização Spring, usar um local personalizado para o favicon e como evitar o erro 404 se não quisermos usar um favicon.
Como sempre, as amostras de código estão disponíveisover on GitHub.