https://spring.io/projects/spring-boot#learn
resources/static/index.html 파일을 만들어 아래 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>
Run버튼을 다시 눌러(실행중이라면 Rerun) 웹서버에 들어가보면 위에서 추가한 html코드가 실행되어 나타난다.
스프링이 맨처음 실행되면 index.html을 찾아 실행하는 것이다. (스프링 웹사이트 참조)
hello를 누르면 ./hello로 이동하는데, 현재 그런 페이지가 없으므로 에러페이지가 다시 뜨게 된다.
추후 thymeleaf 템플릿 엔진을 이용하여 기능들을 추가하는 것 같다.
위 웹사이트의 7.1.10을 보면, 템플릿 엔진으로 FreeMarker, Groovy, Thymelaef, Mustache를 지원하는 것을 볼 수 있다.
컨트롤러 만들기
동작하는 것을 만들어 보자. 웹어플리케이션의 첫번째 진입점이 컨트롤러이다.
java/hello/hellospring/controller 패키지를 만들어주고, 아래 코드를 붙여넣는다.
@Controller
public class HelloController {
// get post 느낌
@GetMapping("hello")
public String hello(Model model) {
model.addAttribute("data", "hello!!");
return "hello";
}
}
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>
<html xmlns:th="http://www.thymeleaf.org"> 을 통해 thymeleaf를 쓰겠다고 xml을 추가한것이다.
커뮤니티 에디션이라면 안 될 수도 있는데, Ctrl키를 누르고 hello나 ${data} 부분을 클릭해보면 연결된 부분으로 넘어간다.
웹에서 ./hello 를 들어가면, get post로 "hello"를 호출하고 이를 컨트롤러의 @GetMapping("helllo")가 동작시키는 것이다.
Spring에서 model(mvc)을 받아온 후, Attribute를 추가하는데, 이름은 data이며 value로 "hello!!"가 들어있다.
그리고서 "hello"를 반환하는데, 이는 String이 아니라 resources\templates\hello.html 파일인 것을 확인할 수 있다.
hello.html 을 살펴보면, ${data}에서 컨트롤러에서 추가한 Attribute의 data를 받아 value인 "hello!!"로 치환되어 출력되는 것을 웹 페이지에서 확인할 수 있을것이다.
번외 : spring-boot-devtools 라이브러리를 추가하면 html 파일만 컴파일해주면 서버 재시작 없이 View 파일 변경이 가능하다.
1. build.gradle에 아래의 코드 추가
implementation 'org.springframework.boot:spring-boot-devtools'
2. Setting > Build, Exeution, Deployment > Compiler > Build project automatically 체크
3. Advanced Settings > Allow auto-make to start even if developed application is currently running 체크
4. 오른쪽 상단에 뜨는 load gradle changes 클릭
5. 프로젝트 재시작
빌드하는 방법
cmd를 켜서 프로젝트 폴더로 들어간 후 gradlew build > 엔터
./build/libs 로 경로 변경 후 java -jar hello-spring-0.0.1-SNAPSHOT.jar > 엔터 하면 스프링 서버가 실행된다.
잘 안된다면 gradlew clean을 하면 build 폴더가 사라지니 다시 build를 해본다.
이 jar파일만 있으면 어디에서나 서버 실행이 가능한 것이다.
사진, 코드 출처 - https://inf.run/hivx6
'스프링' 카테고리의 다른 글
스프링 입문 (6) - 회원 관리 예제 : 웹 MVC 개발 (0) | 2024.03.18 |
---|---|
스프링 입문 (5) - 스프링 빈과 의존관계 (0) | 2024.03.15 |
스프링 입문 (4) - 회원 관리 예제 - 백엔드 개발 (0) | 2024.03.14 |
스프링 입문 (3) - 웹 개발 기초 (3) | 2024.03.12 |
스프링 입문 (1) - 개발환경 세팅 (1) | 2024.03.12 |