Spring 공부는 웹 애플리케이션 개발을 해보면서 공부하는 것이 좋음
✔️ Gradle Project
✔️ Group(기업 명)
✔️ Artifact (프로젝트 명)
✔️src : main / test
main (java&resources) : java 파일 제외한 source 파일들
test (java) : test code
✔️ build.gradle
: version, library 설정
✔️ gradlew, gradlew.bat
gradle은 서로 의존관계에 있는 library들을 전부 연결해서 가져옴
"Spring-boot Library"
thyme-leaf
: 타임리프 템플릿 엔진(View)
starter-web
boot-starter : spring-boot + spring-core + logging
spring-boot
▷ spring-core
spring-boot-starter-logging
▷ logback, slf4j
"Test Library"
/hello.hellospring.Controller/HelloController.java
package hello.hellospring.Controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
// MVC
@Controller
public class HelloController {
// Get Method
@GetMapping("hello")
public String hello(Model model) {
// model(키,값)
model.addAttribute("data", "hello!!");
// return resource/templates hello
return "hello";
}
}
/resources/templates/hello.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>
viewResolver
가 화면을 찾아서 처리resources:templates/
+ {ViewName} + .html
참고 : spring-boot-devtools : 라이브러리 추가하면 .html 파일 컴파일만 해주면 서버 재시작 없이 view 파일 변경이 가능