[인프런/스프링] 타임리프 엔진 뷰 환경설정 및 빌드하기
갓으로 불리고 있는 인프런 강의에 단연 꼽히고 있다. 스프링을 쓰면서 어떻게 동작을 하는지, Beans나 서블릿과 같은 개념도 부족하다고 느껴서 나에게 투자해보자는 마음으로 강의를 듣고 있다. 유료강의다보니 고민을 하다가 고민하는 시간에 무료 강의분을 듣고 뒷 부분 강의를 사서 듣는게 맞다고 판단된다. 앞 부분에 인텔리제이 스프링 부터 환경세팅 부분도 있지만, 타임리프 엔진을 처음 써봐서 View 환경 설정부터 정리하기로 결심! 타임리프 처음 써보는데 재밌다🏃♀️
- helloController
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model) {
model.addAttribute("data", "hello!!");
return "hello";
}
}
http://localhost:8080/hello을 던지면 SpringBoot는 내장 톰캣 서버에서 받아서
@GetMapping("hello")
Get 방식으로 hello url 매칭되어 helloController의 hello 메서드가 실행이 됨.
model에 data를 담아 return함
**컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버( viewResolver )가 화면을 찾아서 처리한다.
resources:templates/ +{ViewName}+ .html
> 컨트롤러 리턴 값과 템플릿 파일 이름 매핑(타임리프 템플릿 엔진 처리)
- resources/templates/hello.html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'안녕하세요. ' + ${data}" >안녕하세요. 손님</p>
</body>
</html>
참고: spring-boot-devtools 라이브러리를 추가하면, html 파일을 컴파일만 해주면 서버 재시작 없이 View 파일 변경이 가능하다. (인텔리J 컴파일 방법: 메뉴 build > Recompile)
- 윈도우 환경에서 빌드하기
> cd c:study\hello-spring
> doskey ls = dir
> ls
> gradlew build
> cd build\libs
> java -jar hello-spring-0.0.1-SNAPSHOT.jar
*서버 배포할 때는 jar 파일만 복사해서 서버에 넣어주기