Backend/책,강의

[Book] 1) Spring boot 프로젝트 생성

지수쓰 2020. 6. 28. 15:57
반응형

스프링부트와 AWS로 혼자 구현하는 웹서비스(프리렉출판사 , 이동욱님 지음) 책을 보고 기록하는 내용입니다 . .

문제가 된다면 알려주세요 .. 

 

1. 프로젝트 생성

 

artifactld : 프로젝트의 이름

 

buildscript{
    /*
     * ext : build.gradle에서 사용하는 전역변수를 설정하겠다.
     * springBootVersion이라는 전역변수를 선언하고 값을 2.1.7.RELEASE로 줌
     * => spring-boot-gradle-plugin라는 그레이들 플러그인의 2.1.7을 의존성으로 받겠다
     */
    ext{
        springBootVersion = '2.1.7.RELEASE'
    }

    /*
     * 각종 의존성(라이브러리)등을 어떤 원격 저장소에서 받을지 정함.
     * 주로 mavenCentral을 사용했는데 라이브러리 업로드 난이도가 쉬워진(?) jcenter를 요즘 사용하는 추세임
     */
    repositories{
        mavenCentral()
        jcenter()
    }

    /*
     * dependencies : 프로젝트 개발에 필요한 의존성을 선언하는 곳
     * 특정버전을 명시하지 않아야만 작성한 spring-boot-gradle-plugin:${}버전을 따라감
     * 이렇게 관리하면 라이브러리 버전 관리가 한번에 되고 버전 충돌문제가 해결됨 !!
     */
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}


/*
 * 밑에 4개는 자바와 스프링부트 사용하기 위한 필수 플러그인  -> 앞으로 계속 추가해놓으면됨
 */
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management' // 스프링 부트 의존성 관리해주는 플러그인이라 꼭 추가해야함

group 'com.project.freelec'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8
repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12' // 이건 기본으로 돼있었음
    /*
     * 추가
     */
    compile('org.springframework.boot:spring-boot-starter-web')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

 

 

스프링 부트 의존성 관리 [출처:https://do-study.tistory.com/100]

* starter관련있는 의존성들의 묶음으로 하나의 starter 의존성으로 해당 의존성과 관련된 스프링 & 써드파티 라이브러리 또는 또다른 starter 의존성까지도 의존성 간 버전, 호환성 걱정 없이 한번에 애플리케이션에 포함시킬 수 있습니다.

* 대표적인 spring-boot-starter-web은 웹 관련 기능의 집합으로 기존에 sprinb-web, spring-webmvc을 포함한 여러 라이브러리를 포함시켜야했던 때와 달리 위 의존성 하나로 웹 관련 의존성을 버전 등이 최적화된 상태로 포함시킬 수 있습니다. -> 자동으로 톰캣 내장도 해주는 듯