반응형

이 글의 동영상 강의

https://youtu.be/YmvtzYgE184

 

이번 글은 이전 글에서 만든 프로젝트에 프로그램을 만들어 테스트해봅니다.

Rest API 작성

  • MultiProject1 프로젝트에 SampleRest를 생성
    • 패키지 : com.example.multi.rest
    • 클래스명 : SampleRest
  • SampleRest에 다음 코드를 입력합니다.
package com.example.multi.rest;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api")
public class SampleRest {
	@GetMapping("/msg")
	public ResponseEntity<String> getMessage(){
		return new ResponseEntity<String>("TestOK!", HttpStatus.OK);
	}
}

Boot Dashboard 실행

  • 메뉴에서 Window-Show View-Other를 선택합니다.

Window-Show View-Other

  • 검색창에 "boot"를 입력하고, 아래 Boot Dashboard를 더블클릭합니다.

Boot Dashboard 메뉴선택

  • Boot Dashboard에서 MultiProject1을 클릭하여 선택합니다.
  • 상단의 Start Button을 클릭해서 서버를 Start 시킵니다.
    Boot Dashboard Server Start
  • 정상적으로 Start 되면 Console 창에 아래와 같은 로그가 나옵니다.
    • Tomcat이 8080 포트로 Start 된 것을 확인할 수 있습니다.

Console 로그

  • 브라우저를 열고 SampleRest에서 만든 주소를 입력합니다.
http://localhost:8080/api/msg

Rest 호출

  • Rest API 테스트가 완료되었습니다.

 

공통 Class 생성

  • MultiCommon 프로젝트에 CommonService class 생성
    • 패키지 : com.example.multi.service
    • 클래스명 : CommonService
  • CommonService에 다음 코드를 입력합니다.
package com.example.multi.service;

public class CommonService {
	public String getMessage(String msg) {
		return "This is a " + msg;
	}
}

 

공통 Class를 Child 프로젝트에서 사용하기

  • 공통 모듈을 참조하기 위해서는 Child 프로젝트에 공통모듈의 dependency를 추가해야 합니다.
  • MultiPorject1의 pom.xml에 아래와 같이 dependency를 추가합니다.
    • MultiCommon의 pom.xml에 있는 값으 복사해서 넣어주면 됩니다.
<dependency>
	<groupId>com.example</groupId>
    <artifactId>MultiCommon</artifactId>
</dependency

version missing

  • MultiCommon의 version이 없다는 오류 메시지가 나오면 version을 추가합니다.
    • MultiCommon의 pom.xml에 version을 추가합니다.
<parent>
  <groupId>com.example</groupId>
  <artifactId>Multi</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>MultiCommon</artifactId>
<name>MultiCommon</name>
<version>0.1</version>
  • MultiProject1의 pom.xml에 version을 추가합니다.
<dependency>
  <groupId>com.example</groupId>
  <artifactId>MultiCommon</artifactId>
  <version>0.1</version>
</dependency>
  • Maven Update를 실행합니다.
  • MultiProject1의 SampleRest에서 MultiCommon의 CommonService 모듈을 호출하는 코드를 작성합니다.
    • SampleRest 코드를 아래와 같이 수정합니다.
package com.example.multi.rest;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.example.multi.service.CommonService;

@RestController
@RequestMapping("/api")
public class SampleRest {
	@GetMapping("/msg")
	public ResponseEntity<String> getMessage(){
		CommonService commonService = new CommonService();
		String msg = commonService.getMessage("TestOK!");
		return new ResponseEntity<String>(msg, HttpStatus.OK);
	}
}
  • MultiProject1 프로젝트를 클릭하여 선택하고 상단 실행 버튼으로 프로젝트를 실행합니다.

Boot Start

  • 웹브라우저에서 동일하게 테스트를 수행합니다.

  • CommonService의 모듈이 정상적으로 작동함을 확인할 수 있습니다.

이상으로 3회에 걸친 Maven을 이용한 스프링부트 Multi Module 프로젝트 개발 과정을 마쳤습니다.

감사합니다.

반응형
반응형

이 강좌의 동영상 강의

https://youtu.be/M242qC2TVSM

Maven Multi Module Porject 개념

  • 개발시 여러개의 프로젝트에서 같은 공통모듈을 사용할때가 있습니다.
  • 이때 같은 공통 모듈을 두 군데서 만들어서 사용하는 것은 비효율적이고 관리상 문제가 발생하기도 합니다.
  • 이럴 경우 공통 모듈을 하나만 만들어 여러개 프로젝트에서 같이 사용할 수 있는 방법을 소개합니다.

Maven Multi Module Project 개념

공통 모듈을 사용하는 방법

  • 공통모듈을 사용할때 흔하게 사용하는 방법이 두 가지 있습니다.
  • 첫번째는 공통모듈을 별도의 프로젝트로 만들어 jar로 빌드하여 각각의 프로젝트에 import 하는 방법.
  • 두번째는 Maven Module로 프로젝트를 만들어 dependency로 추가하여 사용하는 방법.
  • 이 중에 우리는 두번째 방법에 대해 알아봅니다.

 

프로퍼티 설정 방법 1

  • 한 개의 프로퍼티 설정을 사용하여 모두 상속 받는 방법입니다.
  • 모든 프로젝트가 동일한 환경일 경우에 사용합니다.

프로퍼티 설정 방법 1

프로퍼티 설정 방법 2

  • Child 프로젝트에 각각의 프로퍼티를 설정하는 방법입니다.
  • 프로젝트별로 다른 환경일 경우에 사용합니다.

프로퍼티 설정 방법 2

실습 프로젝트의 Naming

  • 실습 프로젝트의 Naming은 다음과 같습니다.
  • Parent Project : MultiProject
  • 공통 모듈 : Multi-Common
  • Child 모듈1 : Multi-Sub1
  • Child 모듈2 : Multi-Sub2

프로젝트 Naming

프로젝트 폴더 구성

  • 프로젝트 폴더는 아래와 같이 구성합니다.

프로젝트 폴더 구성

다음 포스트에서는 프로젝트를 만들어 보겠습니다.

반응형

+ Recent posts