본문 바로가기

Spring/Spring

spring-boot 프로젝트 생성

프로젝트 환경설정

프로젝트 생성

사전 준비물

-Java 11 설치

-IDE, InteliJ 또는 Eclipse설치 인텔리 J 많이 쓴다. 추천추천! 인텔리 합니다 : )

'스프링 부트 스터디 사이트로 이동해서 프로젝트 생성'

https://start.spring.io

스프링 기반으로 스프링 부트 관련 프로젝트를 만들어주는 사이트

-Maven Project냐 Gradle Project나 고르는 게 있어. 라이브러리 가져 오고, 관리해주고, build해주는 툴 이다 과거에는 Maven많이 썼으나 요즘에는 Gradle을 많이 쓴다. Gradle 써보자.

-Language는 Java

-Spring Boot에서는 버전을 골라야 함. SNAPSHOT은 아직 시험 버전.

-Project Metadata

Group 기업 도메인 명

Artifact 빌드 되어 나오는 결과물되어 나오는 결과물

-ADD DEPENDENCIDES 어떤 라이브러리 땡겨 쓸 것인가?

Spring Web 선택,

뷰.. 템플릿 엔진 Thymeleaf 선택

Generate하면 다운로드가 되는데.. 이걸 압축 풀어서 인텔리j에서 import해온다.

Open or Import눌러서 가져오면 됨.

import하는데 개 오래 걸린다.

폴더 살펴보기

gradle - gradle사용

src -main :main밑에 java랑 resources 들어가고

-test :test는 test랑 관련 된 코드가 들어감 : 중요함

.build.gradle★

라이브러리 받아오는 거 설정하는 내용이 들어가 있음. 앞에서 받았던 spring-boot-starter-thymeleaf와 spring-boot-starter-web도 있는 걸 확인할 수 있다.

implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'

이런 라이브러리를 받아오는 곳은 mavenCentral!

repositories {
	mavenCentral()
}

기본적으로 @SpringBootApplication 어노테이션 달린 클래스를 만들어준다. main도 보이고.

실행하면 이런 화면 뜸

2021-04-14 16:57:02.196 INFO 37212 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''

url로 접속 시도하면 뭔가 접속이 되는 걸 확인할 수 있다.

package spring.gradle.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}

DemoApplication을 간단히 설명하면 main을 실행하면 SpringApplication.run해서 지금 현재 DemoApplication.class를 넣어주면 @SpringBootApplication붙은 곳을 실행하면서 스프링부트에 내장 된 톰캣 서버 실행시켜버림.

번외+ gradle 설정 바꾸기

build가 gradle 통해서 실행될 때가 있다.

Settings-gradle에서 Build and run using과 Run tests using을 IntelliJ IDEA로 바꿔준다.

바로 java 띄워서 돌리게 되면서 서버 더 빨리 띄울 수 있다.

해당 포스팅은 인프런 김영한님의 스프링 강의를 따라가며 정리한 노트입니다 :)

반응형