반응형

이 글의 동영상 강의

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/2RcBDgLMXSc

Parent 프로젝트 만들기

  • 이클립스를 실행하고 Spring Starter Project(Spring boot)를 생성합니다.
  • File-New-Spring Starter Project

Create Spring Starter Project

  • 생성 내용은 다음과 같습니다.
    • Name : Multi
    • Type : Maven
    • Packaging : Jar
    • Group : com.example
    • Artifact : Multi
    • Package : com.example.multi

프로젝트 만들기

  • 다음 화면에서 다음 Dependency 들을 선택합니다.(검색창에서 조회하시면 됩니다)
    • Spring Boot DevTools
    • Spring Web
    • Rest Repositories
    • 위 세가지 선택 후 Finish 버튼을 클릭합니다.

Dependency 설정

  • 프로젝트의 root에 있는 pom.xml에 아래와 같이 packaging 태그를 추가합니다.
<groupId>com.example</groupId>
<artifactId>Multi</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Multi</name>
<description>Demo project for Spring Boot</description>
<packaging>pom</packaging>

packaging

  • pom.xml을 변경하면 프로젝트에서 아래와 같이 오류 메시지가 나옵니다.

Maven Problems

  • Maven Update Project를 실행하면 프로젝트의 오류가 없어집니다.

Maven Update

공통모듈 프로젝트 만들기

  • 공통 모듈 프로젝트를 다음과 같이 만듭니다.
  • 메뉴에서 File - New - Project를 선택합니다.

File - New - Project

  • 팝업창에서 Maven - Maven Module을 선택합니다.

Maven Module

  • New Maven Module 창
    • Create a simple project에 Check합니다.
    • Module Name : MultiCommon 으로 입력합니다.
    • Next 버튼을 클릭합니다.

MultiCommon Maven Module

  • 다음 설정창에서 아래와 같이 설정합니다.
    • Name에 MultiCommon을 입력합니다.
    • Finish 버튼을 클릭합니다.

  • Parent Project인 Multi의 pom.xml이 다음과 같이 변경된것을 확인할 수 있습니다.

Multi 프로젝트의 pom.xml

  • Common 프로젝트인 MultiCommon의 pom.xml에는 다음과 같이 parent가 설정되어있는것을 확인할 수 있습니다.

Common 프로젝트의 pom.xml

Child 프로젝트 만들기

  • Child 프로젝트인 MultiProject1을 아래와 같이 생성합니다.
  • 메뉴에서 File-New-Spring Starter Project를 선택합니다. 
    • 프로젝트명은 MultiProject1으로 입력합니다.

MultiProject1

  • 다음 Dependency 창에서 아래와 같이 설정합니다.
    • 이전 프로젝트 생성시에 설정했던 내용이 Frequently Used로 보입니다.
    • 해당 항목들을 check하면 이전과 동일하게 선택할 수 있습니다.

  • 동일하게 MultiProject2를 만듭니다.
  • 생성이 완료된 프로젝트 폴더 구조는 다음과 같습니다.

폴더 구조

  • Multi 프로젝트의 pom.xml에 MultiProject1,2를 추가합니다.

  • MultiPorject1,2의 pom.xml에 있는 parent 부분을 MultiCommon과 동일하게 수정합니다.

Child 프로젝트의 pom.xml 수정

  • Mave Update
    • Multi 프로젝트에서 마우스 오른쪽 버튼을 클릭합니다.
    • Maven-Update Project를 선택하여 전체프로젝트를 업데이트 합니다.

Maven Update

프로젝트 생성 및 설정이 완료되었습니다.

다음 글에는 테스트 소스를 만들어 정상적으로 작동이 되는지 확인하겠습니다.

반응형
반응형

이 강좌의 동영상 강의

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