Пример демонстрирует особенности определения ответного заголовка Content-Type
в Spring Framework и Spring Boot. В
частности, показывает, как различается умолчательное отношение к расширению запрашиваемого файла в Spring Framework
4/5 и Spring Boot 2.
Запуск примера производится через класс ContentTypeDemoApplication
.
- Выставить версию Spring Boot
2.0.4.RELEASE
в файлеcontent-type/build.gradle
. - Запустить приложение.
- Выполнить серию HTTP GET запросов к приложению:
/download/document.html
/download/document.json
/download/document.txt
- Во всех трёх случаях тело ответа должно соответсвовать запрошенному расширению, однако заголовок
Content-Type
должен быть одним и тем же:text/html
.
- На выбор:
- Выставить версию Spring Boot
1.5.14.RELEASE
в файлеcontent-type/build.gradle
. - Добавить/раскомментировать в файле
application.properties
строку
spring.mvc.contentnegotiation.favor-path-extension=true
- Выставить версию Spring Boot
- Запустить приложение.
- Выполнить серию HTTP GET запросов к приложению:
/download/document.html
/download/document.json
/download/document.txt
- Во всех трёх случаях тело ответа и заголовок
Content-Type
должны соответсвовать запрошенному расширению.