MSA 공통 모듈 적용

0

TIL

목록 보기
161/183

팀원분이 구현해주신 공통 모듈을 내가 만든 서비스들에 적용해보기로했다.

사용법은 공유받았는데
우선 root project에 settings.gradle 파일에 다음과같이 포함될 서비스들의 정보를 입력한다.

rootProject.name = 'test-systema'

include('auth',
        'server',
        'gateway',
        'delivery-agent',
        'common'
)

project(':auth').projectDir = file('com.forj.auth')
project(':server').projectDir = file('com.forj.server')
project(':gateway').projectDir = file('com.forj.gateway')
project(':delivery-agent').projectDir = file('com.forj.delivery-agent')
project(':common').projectDir = file('com.forj.common')

여기서 settings.gradle을 설정해주었으므로 각 프로젝트에 있는 settings.gradle 파일은 삭제한다.

그리고 Kotlin 관련 플러그인을 설정하지 않았는데 Gradle이 Kotlin 빌드 스크립트 모델을 준비하려고 시도할 때 에러가 발생할 수 있으므로 인텔리제이에서 Kotlin 플러그인을 해제한 후 아래 설정을 해준다.

  • server - build.gradle
dependencies {
	implementation project(':common')
    // ...
}
  • common - build.gradle
plugins {
	id 'java-library'
}

java {
	toolchain {
		languageVersion = JavaLanguageVersion.of(17) // common 프로젝트가 21버전으로 되어있어 버전을 맞춰주기 위해
	}
}

dependencies {
	api 'org.springframework.boot:spring-boot-starter-data-jpa'
	api 'org.springframework.boot:spring-boot-starter-security'
	api 'org.springframework.boot:spring-boot-starter-web'
	testImplementation 'org.springframework.security:spring-security-test'
}
  • server - application.properties
# server는 Database를 사용하지 않으므로 제외하는 설정
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
  • server - ServerApplication.java
@SpringBootApplication
@EnableEurekaServer
@ComponentScan(basePackages = {"com.forj.common", "com.forj.server"})
public class ServerApplication {

	public static void main(String[] args) {
		SpringApplication.run(ServerApplication.class, args);
	}

}

근데 생각해보니까 common으로 사용되는 것들이 BaseEntity랑 각 서비스에서 사용될 security 설정들이다...
그러니 server와 gateway에서는 쓸모가 없다 판단되어 제외시키기로 했다.

0개의 댓글

관련 채용 정보