[스프링부트와 AWS로 혼자 구현하는 웹 서비스] Mustache 실습

세이라·2023년 7월 23일
0

스터디를 통해 스프링부트와 AWS로 혼자 구현하는 웹 서비스(저자 이동욱) 서적을 공부하는 중입니다.

공부/실습한 내용을 정리한 포스팅입니다.
책에 모르는 부분이 있으면 구글링하거나 챗gpt에 물어봐서 보충하였습니다.
(아직 초보라 모르는 부분이 많아 이것저것 다 적었습니다.)

참고한 사이트 출처는 포스팅 맨 하단에 적었습니다.

index.mustache

src>main>resources>templates에 생성 후 아래와 같이 코드 작성

<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>스프링 부트 웹서비스</title>
</head>
<body>
    <h1>스프링 부트로 시작하는 웹 서비스</h1>
</body>
</html>

IndexController.java

web 패키지에 생성 후 아래와 같이 코드 작성

package com.webservice.springboot.springboot_board.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class IndexController {
    @GetMapping("/")
    public String index(){
        return "index";
    }
}
  • 앞서 추가한 mustache 의존성으로 Controller에서 문자열을 반환할 때 앞의 경로와 뒤의 파일 확장자는 자동으로 지정.
  • View Resolver가 전달 받고 처리.

※ View Resolver : URI 요청의 결과를 전달할 타입과 값을 지정하는 관리자 격. DispatcherServlet이 View Name을 전달하면 해당되는 템플릿 파일을 선택 후, View라는 객체를 만들어서 Dispatcher Servlet으로 전달.

IndexControllerTest.java

package com.webservice.springboot.springboot_board.web;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.test.context.junit4.SpringRunner;

import static org.assertj.core.api.Assertions.assertThat;

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class IndexControllerTest {
    @Autowired
    private TestRestTemplate restTemplate;

    @Test
    public void 메인페이지_로딩(){
        //when
        String body = this.restTemplate.getForObject("/",String.class);
        //then
        assertThat(body).contains("스프링 부트로 시작하는 웹 서비스");
    }
}
  • getForObject(String url, Class<T> responseType) :
    주어진 URL 주소로 HTTP GET 메서드로 객체로 결과를 반환 받음.

출처

[SPRING] View Resolver 뷰리졸버
[spring] 스프링에서 사용하는 RestTemplate - http 라이브러리

0개의 댓글