SPRING INITIALIZR
스프링 이니셜라이즈는 스프링 부트를 보다 쉽고 필요한 것만 만들기 위한 위한 사이트이다.
https://start.spring.io/
원하는 버젼의 스프링 부트를 선택하고 그에 맞는 자바 버전을 선택한다.
스프링부트 3.x 버전은 자바 17부터, 스프링부트 2.x버전은 자바 11을 이용해야 뜻하지 않는 오류를 막을 수 있다.
빌드도구는 gradle과 maven을 선택할 수 있는데 예전에는 maven이 대세였지만 현재는 보다 간결한 코딩이 가능한 gradle이 선호되는 추세이다.
plugins {
id 'java'
id 'war'
id 'org.springframework.boot' version '2.7.14'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}
group = 'com.boot'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '11'
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
빌드에 대한 모든 기능은 build.gradle 파일에 정의되며 해당 파일수정 후 리로드를 하면 해당되는 패키지들을 아주 간단하게 변경할 수 있다.
디펜던시의 경우 빌드웹과 mvc 어플리케이션, 아파치 톰캣이 포함된 스프링 웹만 추가해 줬다.
참고로 스프링 부트가 권장하는 타임리프(Thymeleaf)를 쓰지 않고 jsp를 이용하려면 war로 패키징을 해야 한다.
인텔리제이 상용버전을 사용할 경우 프로그램 내부에서 바로 생성이 가능하니 참고만 하기 바란다.
프로젝트 불러오기
원하는 옵션 설정이 끝나면 Generate 버튼을 눌러 압축된 zip파일을 다운로드한다.
파일을 다운로드하면 원하는 프로젝트 폴더로 이 동시 킨 후 압축을 풀어준다.
인텔리제이에서 파일 열기를 통해 build.gradle 파일을 선택하고 해당 프로젝트를 불러온다.
Open as Projdect를 눌러 프로젝트로 열기를 선택한다.
그다음에는 신뢰할 수 있는 프로젝트냐는 경고창이 뜨는데..
해당프로젝트는 무조건 신뢰할수 있으니 Trust Project를 선택해 준다.
프로젝트 열기가 끝나면 설정을 하기 위해 여러 가지 라이브러리를 다운로드하는 시간이 필요하다.
일정시간이 지나면 보기와 같은 구조의 프로젝트가 완성이 된다.
Application.java
자 이제 세팅이 됐으니 제대로 실행하는지 테스트해 볼 차례.
java 폴더 아래에 있는 demoApplication 파일을 보면 @SpringBootApplication이란 어노테이션이 선언되어 있는 것을 알 수 있다.
@SpringBootApplication
해당 어노테이션이 설정한 클래스가 있는 패키지를 최상위 패키지로 인식하고 ComponentScan을 수행한다.
따라서 컨트롤러가 해당 패키지 하위에 위치하지 않을 경우 컨트롤러의 mapping이 제대로 되지 않을 수 있다.
메인메서드를 실행하면 내장된 톰캣서버로 서버가 기동 되는 것을 확인할 수 있다.
서버는 기동 되었지만 해당되는 페이지가 없기에 404 오류가 난다.
페이지를 확인하고 싶다면 resources/static 하위에 index.html 파일을 만들면 된다.
하이! 스프링 부트!