[스프링] 자바 스프링 시작하기
💡 tl;dr
- 프로젝트
- 라이브러리
- View 환경설정
프로젝트
프로젝트 생성
- Java 11 필요
- 부트 스타터 사이트를 이용한 스프링 프로젝트 생성
- https://start.spring.io
- Project
- 프로젝트 타입 설정
- Gradle Project : 근래에 주로 사용되는 툴
- Maven Project : 필요한 라이브러리를 땡겨와 관리까지 하는 툴
- Spring Boot
- 버전 선택
- SNAPSHOT은 베타버전
- Language
- 사용 언어 선택
- Project Metadata
- groupId : 그룹명 (임의)
- artifactId : 빌드 결과물(프로젝트 명)
- Name : 프로젝트 이름
- Description : 설명
- Package name : 패키지 이름
- Dependencies: Spring Web, Thymeleaf 선택
- Generate 후 IntelliJ Import
프로젝트 구조
- gradle : gradle 관련 폴더
- src
- main
- java : 메인 자바 파일 모음
- resources : 자바 파일 외 모든 파일들 (HTML 등)
- test : 테스트 파일 리소스들 (그만큼 요즘 개발 트렌드에는 테스트가 중요하다)
- main
- build.gradle : gradle 빌드 옵션 파일
- gradlew
- gradlew.bat
프로젝트 실행
- 실행시 내장된 톰캣 로컬 서버가 자동 실행됨
- IntelliJ 사용시 Gradle 빌드 옵션을 IntelliJ로 설정하면 더 빠른 빌드 가능
라이브러리
스프링 부트 라이브러리
- 스프링을 빌드하면 여러 external library 가 함께 설치된다.
- IntelliJ에서
Gradle
탭에서 Dependencies 를 확인할 수 있다.- 필요한 디펜던시를 전부 끌어온다(스프링 코어까지). 중복은 알아서 거른다.
- 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
테스트 관련 라이브러리
- spring-boot-starter-test
- junit: 테스트 프레임워크 (자바에서도 대부분 사용)
- mockito: 목 라이브러리
- assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
- spring-test: 스프링 통합 테스트 지원
View 환결설정
Welcome page 만들기
resources/static/index.html
static
에 있는index.html
을 우선적으로 웰컴 페이지로 설정- 설명
- thymeleaf 템플릿 엔진
- 컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버( viewResolver )가 화면을 찾아서 처리한다.
- 스프링 부트 템플릿엔진 기본 viewName 매핑
- resources:templates/ +{ViewName}+ .html
빌드하고 실행하기
- 콘솔로 이동
- 필요시
JAVA_HOME
환경설정 (export JAVA_HOME=”{which java 결과물}
“)
- 필요시
- Recompile
./gradlew build
cd build/libs
java -jar hello-spring-0.0.1-SNAPSHOT.jar
- 실행확인
[참조]
[스프링] 자바 스프링 시작하기