스프링 입문 (2) - View 환경 설정, 빌드해보기

2024. 3. 12. 18:15·스프링

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
'스프링' 카테고리의 다른 글
  • 스프링 입문 (5) - 스프링 빈과 의존관계
  • 스프링 입문 (4) - 회원 관리 예제 - 백엔드 개발
  • 스프링 입문 (3) - 웹 개발 기초
  • 스프링 입문 (1) - 개발환경 세팅
효재감자
효재감자
  • 효재감자
    효재감자의 우당탕탕 개발일지
    효재감자
  • 전체
    오늘
    어제
    • 분류 전체보기 (73)
      • 아무거나 (3)
      • 백준 (44)
      • 알고리즘 (4)
      • 자바 (1)
      • 리눅스(우분투) 및 클라우드 (2)
      • 스프링 (14)
        • 스프링 시큐리티 인 액션 (도서 정리) (5)
      • 플러터(Dart) (0)
  • 블로그 메뉴

    • 홈
    • Github
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
효재감자
스프링 입문 (2) - View 환경 설정, 빌드해보기
상단으로

티스토리툴바