김영한 스프링 입문 강의 정리
목차
- 프로젝트 생성
- 라이브러리 살펴보기
- View 환경설정
- 빌드하고 실행하기
환경설정
- IntelliJ
- JDK 11
프로젝트 생성
Spring Initializr
- Maven(과거), Gradle(요즘 추세) 선택
- 필요한 라이브러리를 가져오고, 빌드하는 lifecycle까지 관리해주는 tool
- spring boot ver.
- snapshot, Mn -> 미완성 정식 release 안 됨
- Group : 기업 도메인 명
- artifact : 빌드 결과물
- name, description, packaging : 그대로 해도 상관 없다.
- dependencies : 프로젝트 시 어떤 라이브러리를 가져와 사용할
- add dependencies 버튼클릭
- spring web, thymeleaf(html 템플릿 엔진) 선택
- generate 버튼 클릭 후 다운 받음
- 압축 해제 후 intellij에서 open
실행 시 에러 처리
실행 화면
실행속도 빠르게
- 아래와 같이 설정을 변경하면 Gradle을 통하지 않고 바로 IntelliJ에서 실행시키기 때문에 훨씬 빠르게 실행된다.
라이브러리 살펴보기
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-starter-test
- junit : 테스트 프레임워크
- mockito : 목 라이브러리
- assertj : 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
- spring-test : 스프링 통합 테스트 지원
View 환경설정
src > main > resources > static에 file 추가
<!-- 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>
위의 파일 추가하면 localhost:8080 실행 화면
이는 스프링부트가 제공하는 Welcome Page 기능이다.
- src/main/resources/static 에 파일 올려두면 Welcome Page 기능을 제공
스프링에서 필요한 기능을 찾는게 중요하다.
필요한 기능 찾기
- spring.io에 들어간다.
- Projects 탭에 Spring Boot 클릭
- LEARN 탭 클릭
- 현재 버전 옆에 Reference Doc. 버튼 클릭
- 필요한 기능 찾기
동작하는 화면 만들기
- web application에서 첫 번째 진입점이 Controller
- 코드
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");
}
}
<!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>
<!-- th == thymeleaf -->
thymeleaf 템플릿엔진 동작 확인
- 톰캣 서버에서 스프링으로 hello 보냄
- Controller의 getMapping을 통해 hello에 매칭된다.
- 매칭된 Method 실행
- 스프링이 model이란걸 만들어 넘겨줌
- return "hello" : templates 파일의 hello.html 파일을 찾아가 렌더링 하라는 의미
뷰 리졸버 (viewResolver)
컨트롤러에서 리턴 값으로 문자를 반환하면, 뷰 리졸버가 화면을 찾아서 처리한다.
- 스프링 부트 템플릿엔진 기본 viewName 매핑
- 'resources:templates/' + {ViewName} + '.html'
빌드하고 실행하기
빌드 방법 (window)
1. CMD 창 실행
2. 프로젝트 폴더 위치에서 ./bradlew.bat build 입력
3. cd build/libs
- .jar 파일이 만들어져 있다.
4. java -jar FILENAME.jar
5. localhost:8080 창이 나오면 성공
빌드 잘 안 될 때
./gradlew.bat clean build 입력시 완전히 삭제 후 재 build
'프로그래밍 > Spring' 카테고리의 다른 글
[Spring Boot] 입문 - 3. 회원 관리 예제 - 백엔드 개발 (0) | 2022.10.19 |
---|---|
[Spring Boot] 입문 - 2. 스프링 개발 기초 (0) | 2022.10.19 |
[Spring] CORS 에러 (0) | 2022.03.16 |
[Spring / DB] 로그인 주의 (0) | 2022.02.23 |
[게시판] 10. 검색 기능 구현 (0) | 2022.01.01 |