🌱 이번 장의 스터디 범위
- 스프링 부트에서의 화면 처리 방법
- js/css 선언 위치를 다르게 하여 웹사이트의 로딩 속도를 향상하는 방법
- js 객체를 이용하여 브라우저의 전역 변수 충돌 문제를 회피하는 방법
🌱 기본 페이지 만들기
- build.gradle에 머스테치 스타터 의존성 등록
- 스프링 부트에서 공식 지원하는 템플릿 엔진이므로 추가 설정 없이 설치 후 의존성 하나만 추가 하면 완료
// build.gradle
compile('org.springframework.boot:spring-boot-starter-mustache')
- 머스테치의 파일 위치는 src/main/resources/templates
- 첫 페이지를 담당할 index.mustache를 생성
// index.mustache
<!DOCTYPE HTML>
<html>
<head>
<title>스프링 부트 웹서비스</title>
<meta http-equiv="Content-Type" content="text/html"l charset="UTF-8" />
</head>
<body>
<h1>스프링 부트로 시작하는 웹 서비스</h1>
</body>
</html>
- Controller에서 위 머스테치에 URL 매핑을 진행 : IndexController 클래스 생성
// IndexController.java
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class IndexController {
/* 머스테치 스타터 덕분에 앞의 경로와 뒤의 파일 확장자는 자동으로 지정
index를 반환하므로 (return "index";)
src/main/resources/template/index.mustache로 전환되어 View Resolver가 처리 */
@GetMapping("/")
public String index() {
return "index";
}
}
- 테스트 코드로 검증 : IndexControllerTest 클래스 생성
// IndexControllerTest.java
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;
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
@RunWith(SpringRunner.class)
@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("스프링 부트로 시작하는 웹 서비스");
}
}
- 실제로 URL 호출 시 페이지의 내용이 제대로 호출되는지 테스트
- "/"로 호출했을 때 "스프링 부트로 시작하는 웹 서비스" 문자열이 포함되어 있는지 비교
- 실제로 화면이 잘 나오는지 확인 : Application.java의 main 메소드를 실행한 후 http://localhost:8080 접속
'Java-Spring > 스프링 부트와 AWS로 혼자 구현하는 웹 서비스' 카테고리의 다른 글
[Spring Boot] 04장. 머스테치로 화면 구성하기 - 전체 조회 화면 만들기 (0) | 2021.10.13 |
---|---|
[Spring Boot] 04장. 머스테치로 화면 구성하기 - 게시글 등록 화면 만들기 (0) | 2021.10.13 |
[Spring Boot] 04장. 머스테치로 화면 구성하기 - 서버 템플릿 엔진과 머스테치 소개 (0) | 2021.10.11 |
[Spring Boot] Spring 웹계층 (0) | 2021.10.06 |
[Spring Boot] 03장. 스프링 부트에서 JPA로 데이터베이스 다뤄보자 - JPA Auditing (0) | 2021.10.06 |