IntelliJ IDE에서 Spring Initializr로 스프링부트 프로젝트를 생성할 수 있습니다.
( https://start.spring.io/에서 스프링부트 프로젝트를 생성할 수도 있습니다. )
1. 프로젝트 생성
1)
New Project > Spring Initializr에서 SDK를 설정합니다.
2)
- Group
- 기본 패키지명
- Artifact
- 프로젝트 명
- Type
- 빌드 타입
- Language
- 사용 언어
- Packaging
- 패키징 방법
- Java Version
- 자바 버전
Gradle로 빌드할 것이므로 Type을 Gradle Project로 설정하면 되고, 나머지 정보는 각자 작성하시면 됩니다.
3)
의존성을 추가합니다.
예제에서는 일반적으로 많이 사용하는 것들을 추가했으며, 본인이 필요하신 것들을 추가하시면 됩니다.
- Lombok
- 생성자, getter/setter 등 반복적인 작업을 어노테이션을 통해 손쉽게 해줄 수 있음
- IntelliJ에서 사용하려면 플러그인 추가가 필요합니다.
- 참고
- Spring Web
- 웹 개발에 필요한 starter를 제공
- Thymeleaf
- SpringBoot에서 권장하는 서버사이드 렌더링 템플릿 엔진
- Spring Data JPA
- Spring 진영의 대표적 ORM인 JPA
- H2 Database
- Java 기반 오픈소스 RDBMS
- 개발 환경에서 가볍게 쓰기 좋음
4)
프로젝트 경로를 적절히 선택하고 "Finish"를 클릭하여 프로젝트 생성을 마칩니다.
2. 빌드 오류
프로젝트를 생성하면 IDE에서 자동으로 빌드를 해주는데, 계속 빌드에 실패했었습니다.
( 저만의 이슈일 수 있으니, 빌드가 잘 되면 해당 부분은 넘어가시면 됩니다. )
[error 메시지]
Plugin [id: 'org.springframework.boot', version: '2.1.7.RELEASE'] was not found in any of the following sources:
- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (could not resolve plugin artifact 'org.springframework.boot:org.springframework.boot.gradle.plugin:2.1.7.RELEASE')
Searched in the following repositories:
Gradle Central Plugin Repository
위의 에러는 settings.gradle 파일을 수정해서 빌드시킬수 있는데요, ( 참고 )
빌드를 성공해도 gradle에 추가한 dependencies가 External Libaries에 추가되지 않아, 스프링부트를 실행하지 못했었습니다.
제가 해결했던 방법은 IntelliJ를 2019 버전으로 사용하는 것입니다.
IntelliJ 2018 버전에서 도저히 실행이 안되서 혹시하고 2019 버전으로 재설치하니 잘 되더라구요.
( IntelliJ 2018 버전으로 잘 사용하고 계신다면, 어떻게 해결할 수 있는지 알고싶네요... )
위의 사진과 같이 External Libraries에 라이브러리들이 추가되면 성공입니다!
3. Hello World!
External Libraries에 의존성 라이브러리들이 추가되고, 빌드가 성공되셨다면 Hello World를 출력하는 것은 매우 쉽습니다.
위와 같이 Controller 패키지와 하위에 BoardController.java 파일을 생성하여 아래와 같이 작성해주시면 됩니다.
BoardController.java
package com.victolee.board.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class BoardController {
@GetMapping("/test")
public String test() {
return "Hello World!";
}
}
그 다음 BoardApplication에서 Run을 해주면 아래 사진처럼 로그가 출력됩니다.
마지막으로 컨트롤러에서 매핑한 URL( http://localhost:8080/test )을 브라우저에서 접근해보시면, Hello World가 출력되는 것을 확인하실 수 있습니다.
4. 어떻게 실행되는걸까?
특별히 한것도 없는데 어떻게 실행되는 걸까요?
모든 것은 Application 파일에 있는 @SpringBootApplication 어노테이션에 있습니다.
package com.vitolee.board;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class BoardApplication {
public static void main(String[] args) {
SpringApplication.run(BoardApplication.class, args);
}
}
@SpringBootApplication은 @Configuration, @EnableAutoConfiguration, @ComponentScan 어노테이션이 합쳐진 것으로써 스프링부트 기반의 애플리케이션이라고 알려줍니다.
이에 관련된 자세한 내용은 아래의 링크를 참고하시길 바랍니다.
이상으로 IntelliJ + Gradle + SpringBoot로 프로젝트를 생성하여 웹에서 Hello World를 출력해보았습니다.
빌드 오류를 해결하려고 몇 일을 날렸는지 모르겠네요 ㅜㅜ