Должен ли я использовать `src/main/webapp` для обслуживания статического контента с помощью Spring Boot?
Документация Spring Загрузка гласит:
Не используйте каталог src/main/webapp, если ваше приложение будет упакован как банка.
Но удивительно, что Spring пример загрузки для статических веб файлов использует каталог /src/main/webapp
. А также JHipster использует папку webapp
.
Так что я смущен. Предупреждение в документации Spring Boot устарело? В настоящее время считается хорошей практикой использовать src/main/webapp
для обслуживания статических файлов с помощью приложений Spring Boot jar? А если нет, то какая рекомендуемая практика при использовании Spring Boot в настройке Maven?
Ответы
Ответ 1
От Spring Загрузочная справочная документация (выделено мной):
По умолчанию Spring Boot будет обслуживать статический контент из каталога с именем /static
(или /public
или /resources
или /META-INF/resources
) в пути к классам или из корня ServletContext. Он использует ResourceHttpRequestHandler из Spring MVC, поэтому вы можете изменить это поведение, добавив свой собственный WebMvcConfigurerAdapter и переопределив метод addResourceHandlers.
В некоторых моих проектах (Maven) я в настоящее время использую src/main/resources/static
, потому что по умолчанию считается частью пути к классам, а IDE (например, Eclipse) имеют тенденцию к этому.
Ответ 2
Привет, если я понимаю ваш вопрос
когда вы используете упаковку jar в загрузке spring
yo поместит ваш ресурс в META-INF/ресурсы
и вы можете использовать этот пакет jar в другом проекте и ресурсе вызова,
вы можете переместить webapp в каталог meta-inf с помощью maven и gradle build