[HelloController]
package hello.hellospring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model) {
model.addAttribute("data", "hello!");
return "hello";
}
}
- @getMapping("hello") 는 웹 어플리케이션에서 http://localhost:8080/hello 로 들어오게 되면 hello 메서드를 호출해준다.
- http url을 임의로 치고 엔터를 치는 것을 Get 방식이라고 한다.
- http://localhost:8080/hello 의 /hello가 url에 매칭이 되면 해당 메서드가 실행이 된다.
- return "hello" 라고 하면 기본적으로 스프링은 resources/templates/hello.html 을 찾아서 렌더링 한다.
[template.hello.html]
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org"> // tymeleaf 템플릿 엔진 선언
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'안녕하세요. ' + ${data}" >안녕하세요. 손님</p>
</body>
</html>
- th 는tymeleaf 의 th 이다.
- tymeleaf 템플릿 엔진을 선언하면 쓸 수 있다.
- ${data} 는 model에 attribute에 add해서 key로 넣었던 data, value는 hello! 이다.
- ${data} 부분이 hello! 로 치환된다.
- 스프링 부트는 처음으로 static 디렉토리에 위치에 있는 index.html을 찾고 없다면 templates 디렉토리에 있는 index.html을 찾는다.
- Controller에서 리턴 값으로 문자를 반환하면 뷰 리졸버(viewResolver)가 화면을 찾아서 처리한다.
- 스프링 부트 템플릿 엔진 기본 viewName 매핑
- resources:templates/ + {ViewName} + .html
빌드
이제 빌드를 해서 실제로 실행할 수 있는 파일을 만들어보겠습니다.
./gradlew.bat build // 윈도우
./gradlew build // Mac
빌드가 성공하셨다면 해당 디렉토리로 이동해주세요.
cd build/libs
이동이 완료하셨다면 실행시켜봅시다.
java -jar hello-spring-0.0.1-SNAPSHOT.jar
스프링이 뜨고 실행이 완료되었다면 http://localhost:8080/ 로 이동해줍시다.
서버에 배포할 때는 이 파일만 복사해서 서버에 넣어주시고 이런식으로 실행을 하면 서버에서도 스프링이 동작됩니다.
jar 파일로 실행을 완료했다면 IDE에서 8080 포트로 두개를 동시에 못 띄우니 꼭 꺼주세요!
참고
./gradlew.bat clean // build 파일 없애기 (Window)
./gradlew clean // build 파일 없애기 (Mac)
'Spring' 카테고리의 다른 글
[Spring] 객체 지향 설계 SOLID 원칙 (0) | 2024.06.10 |
---|---|
[Spring] AOP (0) | 2024.06.10 |
[Spring] 스프링 DB 접근 기술 (0) | 2024.06.10 |
[Spring] spring-boot-devtools (0) | 2024.06.09 |
[Spring] 웹 개발 방식 (0) | 2024.03.28 |