개발/[MSA] 마스터링 스프링 클라우드-내용 정리
제2장 마이크로서비스를 위한 스프링 (2) - 스프링 부트를 이용해 애플리케이션 개발하기
sheriff
2019. 1. 25. 09:53
스프링 부트를 이용해 애플리케이션 개발하기
Spring 의존성 추가하기
Maven
- Parant 를 이용한 방법
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
- dependencyManagement 를 이용한 방법
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.0.0.RELEASE</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
dependency를 추가 할 때 <version> 이 없어도 되는 이유는 상속하는 parent 또는 dependencyManagement 에 해당 artifact에 대한 Version 정보가 이미 존재하기 때문이며 다른 버전을 사용하고 싶을 경우에는 version을 명시 하면 된다.
Gradle
gradle 의 경우, 부모 의존성을 정의할 필요가 없다.
SpringBootApplication
의존성을 추가 했으면 이제 실제 애플리케이션을 개발하고 실행을 해보자.
먼저 메인 애플리케이션 클래스를 생성하고 @SpringBootApplication 애노테이션을 추가한다. 이게 전부다.
@SpringBootApplication 애노테이션은 @Configuration, @EnableAutoConfiguration, @ComponentScan 이렇게 세 가지 애노테이션을 추가 한 것과 같다.
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
이렇게 작성을 하고 Application을 실행하면 spring-boot-starter-web을 의존성 추가를 했기 때문에 포트 8080을 사용하는 톰캣 컨테이너의 스프링 컨텍스트를 시작한다.
현재 프로젝트에 포함되어 있는 라이브러리 항목은 다음과 같다.
어떻게 된 것인지 궁금하다면 아래 링크에 들어가서 Transitive Dependencies를 확인해 보면 된다.
IDE를 사용하지 않는다면 다음과 같이 pom.xml에 spring-boot-maven-plugin 을 추가 해야 한다.
그리고 빌드를 하고 난 뒤 " java -jar {파일이름].jar 를 실행 하면 IDE에서 실행한 것과 마찬가지로 잘 실행이 될 것이다.
웹 컨테이너를 변경하고 싶다면 의존성 항목을 변경하면 된다.
spring-boot-starter-jetty 로 바꾸면 Jetty 서버로 변경된다.