Real Vectorism. 훨씬 더 입체적으로...
스프링 웹플럭스에서 index.html 파일을 보여주기 본문
반응형
개뻘짓의 결과로 끝내 깨달음을 얻었다...
아무리 스프링 웹플럭스가 반응형으로 데이터를 교환하기 위해 기존의 서블릿이나 mvc과 아예 다른 밑바닥부터 설계가 다른 프레임워크가 되었다고 하더라도 최소한 보여져야 할 웹페이지가 1개가 있는 경우에는 index.html 파일을 구성할 수가 있어야 한다.
커스터마이징을 밥먹듯이 하는 병이 있는 경우에는 필자와 같은 개뻘짓에 굉장히 많이 당황스러울 수도 있다.
일단, src/main/resources 경로 내부에 index.html와 그 구성파일들을 넣을 수는 있다. 이 때
|
반드시 경로명을 저 중 하나로 결정을 해야한다.
@EnableWebFlux 어노테이션이 붙는 순간 커스터마이징이 허용되지 않는다.
index.html 와 css파일, js파일 등 구성파일들이 모두 저 경로명을 따르는 폴더 안에 모두 들어갔다면 라우터 클래스를 작성한다.
@Configuration
public class GrastRouter {
@Bean
public RouterFunction<ServerResponse> index(@Value("classpath:/public/index.html") Resources html) {
return RouterFunctions.route(
RequestPredicates.GET("/").and(RequestPredicates.contentType(MediaType.TEXT_HTML)),
request -> ServerResponse.ok().contentType(MediaType.TEXT_HTML).bodyValue(html)
);
}
}
@Controller 어노테이션이 아닌 @Configuration 어노테이션임에 유의
@RequestMapping(GetMapping, PostMapping) 어노테이션이 아닌 @Bean 어노테이션임에 유의
request -> 부터는 보통 핸들러 클래스를 별도로 만들어서 그걸 이용해야하는데 그냥 간단하게 대충 썼음.
원본내용은 이 페이지에서 제공하고 있지만 한가지 흠이 있다면
해당 페이지에서는 bodyValue가 아닌 syncBody 메소드를 사용하지만 이 메소드는 deprecated 되었다.
반응형
'Java (based by Spring Boot 2)' 카테고리의 다른 글
html과 css가 application/json 으로 반환되는 문제 (EnableWebflux 어노테이션 관련) (0) | 2022.08.15 |
---|---|
너무 늦은 R2DBC 학습 (0) | 2022.08.10 |
스프링 웹플럭스에서 데이터의 추가에 따른 즉각방출 예제소스 (0) | 2021.07.19 |
웹플럭스 미치겠다 (0) | 2021.07.18 |
아니 잠깐 (0) | 2021.07.10 |
Comments