Spring boot 프로젝트 만들어 보기
Spring boot 장점
1. 라이브러리들이 미리 조합되어 있다.
2. 복잡한 설정을 자동으로 처리해 준다.
3. 내장 서버를 포함. (톰캣과 같은 서버를 추가로 설치하지 않아도 된다.)
4. WAS(Web Application Server)에 배포하지 않고도 실행할 수 있는 JAR 파일로 개발할 수 있다.
Spring boot 프로젝트 생성하기
intellij 사용 : Create New Project 클릭 → Spring Initializr 선택
빌드 관리 도구를 Gradle로 선택
웹 프로젝트를 생성하고 있으므로 Spring Web 의존성을 추가
개발 생산성 향상을 위해 Spring DevTools 의존성도 추가해 주었다.
Gradle이나 Maven과 같은 빌드 관리 도구를 사용해 단순히 의존성만 추가함으로써
쉽게 의존성 관리 및 라이브러리 다운이 가능하다.
로그 살펴보기
o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
→ 프로젝트가 tomcat으로 실행되었으며, 8080포트를 사용한 다는 것을 알 수 있다.
com.example.sample.SampleApplication : Started SampleApplication in 1.273 seconds (JVM running for 2.297) → SampleApplication이 정상적으로 실행되었으며 실행되는데 1.273초가 걸렸음을 의미한다.
브라우저에서 결과 확인
브라우저에 http://localhost:8080을 입력해 아래 페이지가 뜨면 정상적으로 빌드가 된 것이다.
spring boot 로 프로젝트 생성 시 프로젝트의 실행에 관련된 기능은 자동으로 설정되지만,
화면에 보이는 부분은 자동으로 만들어지지 않기 때문에 에러 화면이 출력된다.
Hello World 출력하기!
1. sample 패키지 안에 Controller 패키지 생성, HelloController 클래스 생성
2. HelloController 클래스에 Hello World! 출력되도록 작성
- @RestController 어노테이션을 사용해 해당 클래스가 REST 컨트롤러 기능을 수행
- @RequsetMapping 어노테이션응ㄴ 해당 메서드를 실행할 수 있는 주소 설정
- public String hell(){ } 는 return 메세지를 화면에 전달해 주는 역할을 하고 @RequsetMapping 어노테이션에서 설정한 주소가 호출되면 해당 주소와 연관된 메소드가 실행된다.
3. 프로젝트 재시작 후 브라우저 localhost:8080 에서 호출하면 정상적으로 출력되는 것을 확인 할 수 있다.
Spring Boot 프로젝트 구조 알아보기
프로젝트의 주요 파일 및 구조
src/main/java : 자바 소스 디렉토리
SampleApplication 클래스 : 애플리케이션을 시작할 수 있는 main메소드가 존재하는 스프링 구성 메인 클래스
templates : 스프링부트에서 사용 가능한 여러 가지 뷰 템플릿 파일 위치
static : 스타일 시트, JS, 이미지 등의 정적 리소스 디렉터리
application.properties : 애플리케이션 및 스프링 설정 등에서 사용할 여러 프로퍼티(property) 정의
src : JSP 등 리소스 디렉터리
build.gradle : gradle 빌드 명세, 프로젝트에 필요한 라이브러리 관리, 빌드 및 배포 설정
SampleApplication 클래스
SpringBoot Application의 구성과 실행을 담당하는 중요한 클래스이다.
SpringBoot 는 자동 구성으로 최소한의 설정으로 바로 실행할 수 있는 Application을 만들어주는 장점이 있다.
sampleApplication.java
package com.example.sample;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SampleApplication {
public static void main(String[] args) {
SpringApplication.run(SampleApplication.class, args);
}
}
✔ @SpringBootApplication : 핵심 어노테이션으로 SpringBoot의 어노테이션 3개로 구성
1. @EnableAutoConfiguration : Spring의 다양한 설정이 자동으로 완료된다.
2. @ComponentScan : 빈(bean) 클래스를 사용하기 위해 XML에 빈을 설정할 필요 없이 자동으로 여러 컴포넌트 클래스를 검색하고 검색된 컴포넌트 및 빈 클래스를 Spring 어플리케이션 컨텍스트에 등록하는 역활을 한다.
3. @Configuration : 해당 어노테이션이 붙은 자바 클래스는 자바 기반 설정 파일임을 의미한다.
@SpringBootApplication에는 포함되어 있지 않고 @SpringBootConfiguration에 포함되어 있다.
✔ main 메소드는 SpringApplication.run() 메소드를 사용해 SpringBoot Application을 실행할 수 있게 한다.
build.gradle
plugins {
id 'org.springframework.boot' version '2.6.6'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
✔ repositories
- SpringBoot 프로젝트에서 사용하는 라이브러리들을 받아오는 저장소를 설정
- 가장 기본이 되는 Maven Repository는 mavenCentral() 로 설정하면 된다.
✔ dependencies
- 필요한 라이브러리 의존성을 설정하는 부분이다.
- 필요한 라이브러리들을 추가해 주면 gradle이 알아서 필요한 라이브러리들을 다운.
'[책] 스프링부트 시작하기 (김인우)'를 공부하면서 적은 내용입니다.