У меня есть статическая страница, которую я хочу условно обслуживать на определенном URL-адресе.
С пружинной загрузкой я могу разместить страницы в каталогах ресурсов static
или public
и предоставить их всем, но если я хочу ограничить доступ или отключить доступ к ним с помощью флага функции, это не подходит.
Использование механизма шаблона Я могу загрузить страницу в качестве шаблона и вернуть ссылку на представление. Однако мое приложение довольно простое, и я не хочу использовать механизм шаблонов, если в противном случае мне не нужно его использовать.
Я хочу, чтобы иметь возможность использовать контроллер для определения погоды, обслуживаемой страницей или нет. Каков самый простой способ вернуть контроллер статической странице?spring-boot - условно обслуживать статический контент без шаблона двигателя
1
A
ответ
1
Самый простой способ вернуть статический контент с контроллера - вернуть Resource
. Существует несколько реализаций класса Resource
, но ClassPathResource
имеет наибольшее значение для приложения для весенней загрузки.
В обычном весеннем загрузочном приложении в приведенном ниже примере будет отображаться src/main/resources/path/to/mypage.html
, если mycondition()
- true
и в противном случае возвращает 404.
@RequestMapping("mypage.html")
public Resource myPage() {
if(mycondition()) {
return new ClassPathResource("path/to/mypage.html");
} else {
throw new ResourceNotFoundException();
}
}
@ResponseStatus(HttpStatus.NOT_FOUND)
private static class ResourceNotFoundException extends RuntimeException {
public ResourceNotFoundException() {}
}
Создать фильтр для контроля доступа. Так работает Spring Security. – Andreas