| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
- 깃허브 블로그
- 백준문제
- 자바
- 환경설정
- 전화번호부
- 백준
- 오류모음
- spring
- jsp
- while
- 오류
- 이클립스
- ORA-02292
- for문
- MSI
- 공부
- Oracle
- 백준문제풀이
- 순환문
- 오라클
- 파워서플라이
- 이클립스단축기
- 티스토리 블로그
- 설정
- ORA-01407
- 무결성 제약조건
- 스프링
- 별 찍기
- Ajax
- 인터페이스
- Today
- Total
danDevlog
[Spring Boot] 사전 환경 준비 본문
*해당 게시물은 인프런 김영한 강사님의 스프링 강의를 듣고 개인 정리용으로 작성하였습니다.
-사전 환경 준비
- Java 11 설치
- IDE : IntelliJ 또는 Eclipse
스프링 부트 스타터 사이트에서 스프링 프로젝트 생성
부트 스타터를 이용하면 번거러운 설정이 줄어든다.

Gradle Proejct / Java / 2.6.4 / Spring Web / Thymeleaf
IDE에서 load 혹은 import를 통해 위에서 Generate 한 파일을 불러오고나서 동작 확인을 위해
http://localhost:8080 을 브라우저에서 실행하면

이러한 화면이 나오면 성공이다.
IntelliJ는 Gradle을 통해서 실행 하는 것이 기본 설정이다. 이렇게 하면 실행속도가 느리므로 IntelliJ IDEA로 변경한다.

File -> Setting 에 들어가서 Build and run using 과 Run tests using 그리고 JVM에서 다운받은 Java11로 변경해준다.

File -> Project Structure 에서도 자바 11로 변경해준다.
-라이브러리 살펴보기
Gradle은 의존관계가 있는 라이브러리를 함께 다운로드 한다.
- spring-boot-starter-web
- spring-boot-starter-tomcat: 톰캣(웹서버)
- spring-webmvc: 스프링 웹 MVC
- spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View)
- spring-boot-starter(공통) : 스프링 부트 + 스프링 코어 + 로깅
- spring-boot
- spring-core
- spring-boot-starter-logging
- logback, slf4j
- spring-boot
-View 환경설정
Welcome Page는 먼저 구성된 정적 콘텐츠 위치에서 파일을 찾고, 찾을 수 없는 경우 템플릿에서 찾는다.
둘 중 하나를 발견하면 응용 프로그램의 환영 페이지로 자동으로 사용된다.
resources/static/index.html 경로로 index.html 파일을 생성해준다.
(Tip. ! + tab 을 하면 기본 html 틀을 자동으로 만들어준다.)

이렇게 하면 스프링 부트는 위 경로내의 index.html 파일을 welcome page로 인식한다.

HelloSpringApplication 파일을 보면 main메소드가 선언되어있고 이를 실행하면

위와같은 화면이 나오게 된다. 하지만 밑줄이 그어져있는 hello를 들어가게되면 Error Page가 발생한다
왜냐하면 따로 페이지를 만들어주지 않았기 때문이다.
-Controller를 사용하여 /hello 페이지에서 실행될 메소드 정의
먼저 src/main/java/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;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model){
model.addAttribute("data", "spring!!");
return "hello";
}
}
- Controller로서 사용하기 위해서는 반드시 @controller 어노테이션을 붙여줘야한다.
- @GetMapping 어노테이션은 http GET 요청을 특정 메소드와 매핑시켜주기 위한 어노테이션으로 파라미터안에 url을 적어준다.
- hello 메소드는 위의 get요청을 처리하기 위한 메소드로 파라미터로 model을 받아온다.
- model.addAttribute("data", "spring!!") 에서는 model 에게 data를 넘기게 되는데 이때 key 값은 data이며 value값은 spring!! 이다.
- return값으로 "hello"를 반환하면 ViewResolver가 hello.html을 찾아서 화면을 띄어준다.
이어서 hello.html 파일을 생성해준다.
<!doctype html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<p th:text="'안녕하세요.' + ${data}" >안녕하세요. 손님</p>
</body>
</html>
xmlns:th="http://www.thymeleaf.org" 를 선언해주면 thymeleaf 템플릿 엔진을 사용한다는 뜻이다.
이로써 thymeleaf 문법을 사용할 수 있다.
p태그에서 th는 thymeleaf를 의미한다.
${data}로 model.addAttribute("data","spring!!") 에서의 key값에 해당하는 value값인 spring!! 을 받아오게되며, 이는 ${data} -> spring!! 으로 치환된다.
웹브라우저 -> 내장 톰켓 서버 -> helloController -> return: hello (model(data:spring!!) ->
viewResolver(templates/hello.html을 찾음) -> hello.html(변환 후) -> 브라우저에 화면을 띄어줌
-CMD환경에서 빌드하여 jar파일 생성하기
- 명령 프롬프트에서 cd /~경로 를 통해서 hello-spring이 있는 폴더까지 이동한다.
- gradlew build 를 입력하여 build해준다.
- build라는 폴더가 생성되었을 것이다. build의 libs 폴더로 이동해준다
- libs 내에 생성된 jar파일 (hello-spring-0.0.1-SNAPSHOT.jar) 을 실행해준다.
- java -jar jar파일명.jar

'Spring 입문' 카테고리의 다른 글
| [Spring Boot] 컴포넌트 스캔과 자동 의존관계 설정 (0) | 2022.03.26 |
|---|---|
| [Spring Boot] 회원 관리 예제 - 서비스 개발 / 서비스 테스트 (0) | 2022.03.22 |
| [Spring Boot] 회원 관리 예제 - 회원 리포지토리 테스트 케이스 작성 (0) | 2022.03.22 |
| [Spring Boot] 회원 관리 예제 - 도메인과 리포지토리 만들기 (0) | 2022.03.21 |
| [Spring Boot] 정적 컨텐츠 / MVC와 템플릿 엔진 / API (0) | 2022.03.21 |