В приложении Spring Boot обслуживание статических ресурсов, таких как CSS, JavaScript, изображения и другие файлы, имеет решающее значение для создания современных веб-приложений. По умолчанию Spring Boot обслуживает статические ресурсы из пути к классам или «статического» каталога внутри проекта. Однако для особых требований вам может потребоваться зарегистрировать дополнительные папки статических ресурсов. В этой статье мы рассмотрим несколько способов регистрации папки статических ресурсов в Spring Boot, а также приведем примеры кода.
Метод 1. Использование метода «addResourceHandlers».
Один из способов зарегистрировать папку статических ресурсов в Spring Boot — использовать метод addResourceHandlersинтерфейса WebMvcConfigurer.. Вот пример:
@Configuration
public class StaticAssetsConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/custom/")
.addResourceLocations("file:/path/to/custom/assets/");
}
}
В этом примере метод addResourceHandlersпереопределяется для добавления нового обработчика ресурсов для шаблона URL-адреса «/custom/». Он указывает расположение папки статических ресурсов с помощью метода addResourceLocations.
Метод 2: использование свойства «spring.resources.static-locations».
Другой подход — настроить папку статических ресурсов с помощью свойства spring.resources.static-locationsв файле application.properties или application.yml. файл. Вот пример:
spring.resources.static-locations=file:/path/to/custom/assets/
В этом примере для свойства задан путь к папке настраиваемых статических ресурсов.
Метод 3: использование свойства «spring.resources.add-mappings».
Spring Boot также предоставляет свойство spring.resources.add-mappingsдля регистрации дополнительных сопоставлений ресурсов. Вот пример:
spring.resources.add-mappings=/custom/
В этом примере шаблон URL-адреса «/custom/» добавляется в качестве сопоставления, и Spring Boot будет искать статические ресурсы в «статической» папке по умолчанию, а также в дополнительной пользовательской папке.
Метод 4: использование компонента ResourceHttpRequestHandler
Вы можете создать собственный компонент типа ResourceHttpRequestHandlerдля обработки статических запросов ресурсов. Вот пример:
@Configuration
public class StaticAssetsConfig {
@Bean
public ResourceHttpRequestHandler staticAssetsHandler() {
ResourceHttpRequestHandler handler = new ResourceHttpRequestHandler();
handler.setLocations(Arrays.asList(
new ClassPathResource("static/"),
new FileSystemResource("/path/to/custom/assets/")
));
return handler;
}
}
В этом примере bean-компонент staticAssetsHandlerсоздается с несколькими местоположениями ресурсов, включая «статическую» папку по умолчанию и папку настраиваемых ресурсов.
В этой статье мы рассмотрели несколько способов регистрации папки статических ресурсов в Spring Boot. Мы обсудили использование метода addResourceHandlers, свойства spring.resources.static-locations, свойства spring.resources.add-mappingsи создание пользовательского bean-компонента ResourceHttpRequestHandler. В зависимости от ваших конкретных требований вы можете выбрать наиболее подходящий метод для обслуживания статических ресурсов в вашем приложении Spring Boot.