프로젝트 생성
사전준비물
- Java 설치
- IDE: IntelliJ 또는 Eclipse 설치
https://start.spring.io/ 스프링 부트 스타터 사이트를 이용해 스프링 프로젝트 생성
해당 사이트에서 아래 사진과 같이 설정한 후, GENERATE 눌러 다운받음
Project
Gradle, Maven : 필요한 라이브러리를 가져오고, 빌드하는 라이프 사이클까지 관리해주는 툴
Gradle을 많이 쓰는 추세
Spring Boot
SNAPSHOT, M1 이런 것들은 아직 정식 릴리즈 버전X
Project Metadata
Group: 보통 기업 도메인명을 주 적음
Artifact: build되어 나올 때의 결과물
Dependencies
어떤 라이브러리를 가져올지 결정
압축 푼 뒤, IntelliJ에서 build.gradle 파일 → 프로젝트 열기
동작 확인
스프링 부트 메인 실행 후 에러페이지로 확인 가능 (http://localhost:8080/)
단축키 검색
- 파일 > 설정 > 키맵 에서 단축키 이름 검색
IntelliJ Gradle 대신에 자바 직접 실행
- 파일 > 설정 > 빌드, 실행, 배포 > Gradle
아래와 같이 Gradle(default)를 IntelliJ로 변경하면 바로 실행해서 실행속도가 더 빠름
라이브러리 살펴보기
Gradle은 의존관계가 있는 라이브러리를 함께 다운로드
스프링 부트 라이브러리
- spring-boot-starter-web
- spring-boot-starter-tomcat: 톰캣(웹서버)
- spring-webmvc: 스프링 웹 MVC
- spring-boot-starter-thymleaf: 타임리프 템플릿 엔진(view)
- spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅
- spring-boot
- spring-core
- spring-boot-starter-logging
- logback, slf4j
- spring-boot
테스트 라이브러리
- spring-boot-starter-test
- junit: 테스트 프레임워크
- mockito: 목 라이브러리
- assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
- spring-test: 스프링 통합 테스트 지원
View 환경설정
Welcome Page 만들기
resources/static/index.html 생성
index.html이 도메인만 누르고 들어왔을 때의 첫 화면(welcome page)이 됨
<!-- 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>
동적 page 만들기 - thymeleaf 템플릿 엔진
src/main/java/hello.hellospring 폴더에 controller 라는 패키지 생성
controller 패키지 안에 HelloController 라는 java class 생성
//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") //웹 애플리케이션에서 /hello로 들어오면 해당 메서드 호출
public String hello(Model model){
model.addAttribute("data", "spring!!"); //attribute의 이름이 data인 곳에 value로 "spring!!"이 들어감
return "hello";
}
}
resources/templates/hello.html 생성
<!-- 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>
<!-- HelloController의 value 값이 data 에 들어감 -->
</body>
</html>
동작 원리
spring-boot-devtools 라이브러리를 추가하면, html 파일을 컴파일만 해도 서버 재시작 없이 View 파일 변경 가능
빌드하고 실행하기
- 콘솔로 이동
- ./gradlew build
- cd build/libs
- java -jar hello-spring-0.0.1-SNAPSHOT.jar
- 실행확인
windows
- 콘솔로 이동 → 명령 프롬프트(cmd)로 이동
- ./gradlew → gradlew.bat 실행
- cmd에서 gradlew.bat를 실행하려면 gradlew하고 엔터
- gradlew build
- 폴더 목록 확인 ls→dir
- java -jar hello-spring-0.0.1-SNAPSHOT.jar
- 실행확인
'백엔드 > 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술' 카테고리의 다른 글
섹션7. 스프링 DB 접근 기술 (0) | 2024.11.23 |
---|---|
섹션6. 회원 관리 예제 - 웹 MVC 개발 (0) | 2024.11.16 |
섹션5. 스프링 빈과 의존관계 (0) | 2024.11.16 |
섹션4. 회원 관리 예제 - 백엔드 개발 (0) | 2024.11.16 |
섹션3. 스프링 웹 개발 기초 (0) | 2024.11.09 |