💡Gradle은 의존관계가 있는 라이브러리들을 함께 다운로드한다.
(1) 좌측 하단 클릭해서 우측 바 활성화 > (2) Gradle > (3) hello-spring > Dependencies
spring-boot-starter-web
spring-boot-starter-tomcat : 톰캣(웹서버)spring-webmvc : 스프링 웹 MVC(Model View Controller)spring-boot-starter-thymeleaf : 템플릿 엔진(View)
spring-boot-starter : 스프링 부트 + 스프링 코어 + 로깅
spring-bootspring-corespring-boot-starter-loggingslf4j : 인터페이스logback : 실제 로그를 어떤 구현체로 출력할 것인지spring-boot-starter-test
JUnit : 핵심 라이브러리, 테스트 프레임워크 (JUnit5를 많이 쓰는 추세)mockito,assertj : 테스트를 좀 더 편리하게 도와주는 라이브러리spring-test : 스프링 통합 테스트 지원💡
main/resources/static/index.html을 자동으로 welcome page로 인식한다.
main/resources/static/index.html
<!DOCTYPE HTML>
<html>
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
Hello
<a href="/hello">hello</a>
</body>
</html>
스프링부트 : 스프링 생태계를 감싸서 편리하게 사용할 수 있도록 도와 준다.
스프링 : 자바 엔터프라이즈 웹 애플리케이션 개발과 관련된 전반의 생태계를 전부 제공한다. 매우 방대하므로 필요한 걸 찾는 능력이 중요 !!
공식 문서 찾는 법 : spring.io > Projects > Spring Boot > Learn > 버전에 맞는 Reference Doc 확인
컨트롤러 : 웹 애플리케이션에서의 첫 번째 진입점
main/java/hello.hellospring.controller/HelloControll.java
//controller 패키지 생성 후, 자바 클래스 HelloController 생성
@Controller
public class HelloController {
@GetMapping("hello") //웹 어플리케이션에서 /hello라고 들어오면 hello 메소드 호출
public String hello(Model model) {
model.addAttribute("data", "hello!!");
return "hello";
}
}
main/resources/templates/hello.html
model.addAtrribute부분. key값 data를 입력했으므로, value "hello!!"로 치환돼서 나타남<!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>

1) localhost:8080/hello
2) 톰캣 : Spring한테 물어보기
3) helloController @GetMapping("hello")
이때, Get은 HTTP Get Method
4) url 매칭, hello 메소드 실행
스프링이 model을 만들어서 알아서 넣어주며, model(data:"hello!!")과 return값을 넘겨준다.
5) 컨트롤러에서 return 값으로 문자를 반환하면 viewResolver가 화면을 찾아서 처리. resources/templates 밑에 있는 viewName을 매핑(템플릿 엔진)
resources/templates/ +{ViewName}+ .html
spring-boot-devtools라이브러리를 추가하면,html파일을 컴파일(build > build recompile)만 해주면 서버 재시작없이 View 파일 변경이 가능하다.
빌드 후에는 jar 파일만 있으면 실행 가능
터미널 열어서
1) ./gradlew build
2) cd build/libs
3) java -jar hello-spring-0.0.1-SNAPSHOT.jar
4) 실행확인(localhost:8080)
./gradle clean : build 폴더를 지워 줌
./gradle clean build : 기존 build폴더를 지우고 완전히 다시 build