egovframe-msa-edu 4.2.0
This commit is contained in:
223
README.md
223
README.md
@@ -1,2 +1,221 @@
|
||||
# egovframe-msa-edu
|
||||
[Egovframe MSA Template] 클라우드 네이티브 기반의 행정,공공기관 서비스 확산 지원 사업, 온라인 교육 소스
|
||||
# MSA 템플릿 (교육용)
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
'클라우드 네이티브 기반 행정·공공 서비스 확산 지원(2021)' 사업의 일환으로 제작된 MSA(Microservices Architecture) 템플릿의 교육 소스코드이다.
|
||||
|
||||
## 디렉토리 구조
|
||||
|
||||
```
|
||||
├─backend
|
||||
│ ├─apigateway
|
||||
│ ├─board-service
|
||||
│ ├─config
|
||||
│ ├─discovery
|
||||
│ ├─module-common
|
||||
│ ├─portal-service
|
||||
│ ├─reserve-check-service
|
||||
│ ├─reserve-item-service
|
||||
│ ├─reserve-request-service
|
||||
│ └─user-service
|
||||
├─config
|
||||
├─docker-compose
|
||||
│ ├─app
|
||||
│ │ ├─mesh
|
||||
│ │ └─service
|
||||
│ ├─elk
|
||||
│ │ ├─kibana
|
||||
│ │ │ └─config
|
||||
│ │ └─logstash
|
||||
│ │ ├─config
|
||||
│ │ └─pipeline
|
||||
│ ├─mysql
|
||||
│ │ └─init
|
||||
│ └─opensearch
|
||||
│ └─logstash
|
||||
│ ├─config
|
||||
│ └─pipeline
|
||||
├─frontend
|
||||
│ ├─admin
|
||||
│ │ ├─public
|
||||
│ │ │ ├─images
|
||||
│ │ │ └─locales
|
||||
│ │ ├─server
|
||||
│ │ ├─src
|
||||
│ │ │ ├─@types
|
||||
│ │ │ ├─components
|
||||
│ │ │ ├─constants
|
||||
│ │ │ ├─hooks
|
||||
│ │ │ ├─libs
|
||||
│ │ │ ├─pages
|
||||
│ │ │ ├─service
|
||||
│ │ │ ├─stores
|
||||
│ │ │ ├─styles
|
||||
│ │ │ └─utils
|
||||
│ │ └─test
|
||||
│ ├─portal
|
||||
│ │ ├─public
|
||||
│ │ │ ├─locales
|
||||
│ │ │ └─styles
|
||||
│ │ ├─src
|
||||
│ │ │ ├─@types
|
||||
│ │ │ ├─components
|
||||
│ │ │ ├─constants
|
||||
│ │ │ ├─hooks
|
||||
│ │ │ ├─libs
|
||||
│ │ │ │ └─Storage
|
||||
│ │ │ ├─pages
|
||||
│ │ │ ├─service
|
||||
│ │ │ ├─stores
|
||||
│ │ │ ├─styles
|
||||
│ │ │ └─utils
|
||||
│ │ └─test
|
||||
│ └─practice-image
|
||||
└─k8s
|
||||
├─applications
|
||||
│ ├─backend
|
||||
│ │ ├─apigateway
|
||||
│ │ │ └─ingress
|
||||
│ │ ├─board-service
|
||||
│ │ ├─config
|
||||
│ │ ├─discovery
|
||||
│ │ │ └─ingress
|
||||
│ │ ├─portal-service
|
||||
│ │ ├─reserve-check-service
|
||||
│ │ ├─reserve-item-service
|
||||
│ │ ├─reserve-request-service
|
||||
│ │ └─user-service
|
||||
│ └─frontend
|
||||
│ ├─admin
|
||||
│ │ └─ingress
|
||||
│ └─portal
|
||||
│ └─ingress
|
||||
└─environments
|
||||
├─configmaps
|
||||
├─databases
|
||||
│ └─mysql
|
||||
│ └─init
|
||||
├─jenkins
|
||||
├─logging
|
||||
│ └─elk
|
||||
│ ├─elasticsearch
|
||||
│ ├─kibana
|
||||
│ │ └─ingress
|
||||
│ └─logstash
|
||||
├─nfs
|
||||
├─rabbitmq
|
||||
│ └─ingress
|
||||
├─storage
|
||||
├─vagrant
|
||||
└─zipkin
|
||||
└─ingress
|
||||
```
|
||||
|
||||
### 디렉토리 설명
|
||||
|
||||
- `/backend`: Spring Boot를 기반으로 백앤드에 올려지는 서비스들
|
||||
- `/backend/apigateway`: Microservice에 대한 API 관리 및 모니터링 서비스
|
||||
- `/backend/board-service`: 게시판 서비스 (게시판, 게시물, 첨부파일 관리)
|
||||
- `/backend/config`: 별도의 통합된 설정 관리 서비스 제공을 통해 환경 독립적 서비스 제공
|
||||
- `/backend/discovery`: 마이크로서비스들을 등록하여 관리하고 요청 시 해당 서비스를 찾아 호출
|
||||
- `/backend/user-service`: 사용자 서비스 (로그인, 회원가입, 비밀번호 찾기, 관리자)
|
||||
- `/backend/portal-service`: 포털 공통 서비스 (메뉴, 코드, 컨텐츠, 권한, 인가, 배너, 첨부파일 관리)
|
||||
- `/backend/reserve-check-service`: 예약 확인 서비스
|
||||
- `/backend/reserve-item-service`: 예약 물품 서비스
|
||||
- `/backend/reserve-request-service`: 예약 신청 서비스
|
||||
- `/config`: backend 의 config 서버에서 사용하는 설정 yaml 파일 모음 폴더
|
||||
- `/docker-compose`: Docker에 여러 컨테이너의 실행을 관리하는 yaml 구성 파일들
|
||||
- `/frontend/admin`: Next.js + Typescript + Material UI 활용한 Admin Dashboard.
|
||||
- `/frontend/portal`: Next.js + Typescript 활용한 React 기반 프론트엔드.
|
||||
- `/frontend/practice-image`: 배너 이미지
|
||||
- `/k8s`: Kubernetes 환경 배포를 위한 Resource 템플릿 yaml 파일
|
||||
- `/k8s/applications`: Backend와 Frontend 애플리케이션의 k8s Resource 템플릿 yaml 파일
|
||||
- `/k8s/environments/configmaps`: Pods에서 사용하는 환경변수로서 Key-Value 쌍의 형태로 저장된 객체 정의
|
||||
- `/k8s/environments/databases`: MySQL 관련 객체 정의
|
||||
- `/k8s/environments/jenkins`: Jenkins 관련 객체 정의
|
||||
- `/k8s/environments/logging`: Centralized Logging을 위한 ELK 관련 객체 정의
|
||||
- `/k8s/environments/nfs`: NFS 노드 볼륨 구성
|
||||
- `/k8s/environments/rabbitmq`: Message Broker 관련 객체 정의
|
||||
- `/k8s/environments/storage`: PersistentVolumeClaim 정의
|
||||
- `/k8s/environments/vagrant`: 가상화 소프트웨어 개발환경의 생성을 쉽게 구성하도록 하는 Vagrant 관련 정의
|
||||
- `/k8s/environments/zipkin`: 분산 트랜잭션 추적을 위한 Zipkin 관련 정의
|
||||
|
||||
## 백앤드 구동 방법
|
||||
|
||||
- 개발환경 Eclipse IDE 를 실행한다.
|
||||
- Eclipse IDE 메뉴에서 File>Import… 를 클릭한다.
|
||||
- Import 창이 열리면 Gradle>Existing Gradle Project 를 선택하고 Next 버튼을 클릭한다.
|
||||
- Import Gradle Project 창이 열리면 Next 버튼을 클릭한다.
|
||||
- Project root directory 에서 ${home}/workspace.edu/egovframe-msa-edu/backend/config를 선택하고 Finish 버튼을 클릭한다.
|
||||
- 위의 과정을 반복하여 아래의 프로젝트를 import 한다. (소규모는 1-6, 대규모는 1-9)
|
||||
|
||||
1. config
|
||||
2. discovery
|
||||
3. apigateway
|
||||
4. user-service
|
||||
5. portal-service
|
||||
6. board-service
|
||||
7. reserve-check-service
|
||||
8. reserve-item-service
|
||||
9. reserve-request-service
|
||||
|
||||
- 모든 프로젝트를 import 하고 Project Explorer 를 확인하면 board-service, portal-service, user-service 프로젝트에 오류 표시가 출력된다. querydsl 로 generate 되는 클래스들을 build path 에 추가해야 한다.
|
||||
- Window>Show View>Other 을 클릭해서 열린 창에서 Gradle>Gradle Tasks 를 선택하고 Open 버튼을 클릭하면 Gradle Tasks 탭이 열린다.
|
||||
- Gradle Tasks 오른쪽 윗부분의 View Menu 버튼을 클릭해서 Show All Tasks 를 체크한다.
|
||||
- Gradle Tasks 에서 portal-service>other>compileQuerydsl 을 더블클릭 또는 우클릭 후 Run Gradle Tasks 를 클릭하면 build 가 시작된다.
|
||||
- Project Explorer 에서 board-service, portal-service, user-service 를 선택하고 F5 또는 우클릭 후 Refresh 를 클릭해서 프로젝트를 새로고침한다.
|
||||
- Project Explorer 에서 board-service, portal-service, user-service 를 우클릭하고 Properties 를 클릭한다.
|
||||
- Properties 창이 열리면 왼쪽 메뉴에서 Java Build Path를 선택하고 오른쪽 Source 탭에서 Add Folder… 버튼을 클릭한다.
|
||||
- Source Folder Selection 창이 열리면 build>generated>querydsl 을 체크하고 OK 버튼을 클릭한다.
|
||||
- Properties 창에서 Apply and Close 버튼을 클릭하면 창이 닫히면서 프로젝트를 다시 빌드하고 오류 표시는 사라진다.
|
||||
|
||||
(ELK 설정, Config 설정, OAuth 2.0 설정, API 호출 및 JUnit 테스트 관련해서는 [02.MSA템플릿 백엔드구성 및 실습.pdf](https://github.com/eGovFramework/egovframe-msa-edu/files/11084631/02.MSA._.pdf) 파일을 참조한다.)
|
||||
|
||||
## 프론트앤드 구동 방법
|
||||
|
||||
```
|
||||
node : 14.8.0
|
||||
npm : 6.14.7
|
||||
Visual Studio Code : latest
|
||||
```
|
||||
|
||||
- https://nodejs.org/en/download 에서 다운로드 후 설치하고 버전을 확인한다.
|
||||
|
||||
```
|
||||
node -v
|
||||
npm -v
|
||||
```
|
||||
|
||||
- Visual Studio Code 에서 frontend/admin 폴더를 연다.
|
||||
- Terminal 에서 다음을 실행한다.
|
||||
|
||||
```
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
- 로그인 화면에서 email 란에 '1@gmail.com', password 란에 'test1234!' 입력 후 로그인한다.
|
||||
|
||||
(기타 상세한 내용은 [03.MSA템플릿 프론트엔드구성 및 실습.pdf](https://github.com/eGovFramework/egovframe-msa-edu/files/11084632/03.MSA._.pdf) 파일을 참조한다.)
|
||||
|
||||
## 참조 화면
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## 교육 교재
|
||||
|
||||
- [01.MSA템플릿 개요 및 개발환경 실습.pdf](https://github.com/eGovFramework/egovframe-msa-edu/files/11084628/01.MSA._._.pdf)
|
||||
- [01.MSA템플릿 개요 및 개발환경 이론.pdf](https://github.com/eGovFramework/egovframe-msa-edu/files/11084629/01.MSA._._.pdf)
|
||||
- [02.MSA템플릿 백엔드구성 및 실습.pdf](https://github.com/eGovFramework/egovframe-msa-edu/files/11084631/02.MSA._.pdf)
|
||||
- [03.MSA템플릿 프론트엔드구성 및 실습.pdf](https://github.com/eGovFramework/egovframe-msa-edu/files/11084632/03.MSA._.pdf)
|
||||
- [04.MSA템플릿 이벤트스트림구성 및 실습.pdf](https://github.com/eGovFramework/egovframe-msa-edu/files/11084633/04.MSA._.pdf)
|
||||
@@ -1,12 +1,12 @@
|
||||
plugins {
|
||||
id 'org.springframework.boot' version '2.7.0'
|
||||
id "org.sonarqube" version "3.3"
|
||||
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
|
||||
id 'org.springframework.boot' version '2.7.12'
|
||||
id 'org.sonarqube' version '3.5.0.2730'
|
||||
id 'io.spring.dependency-management' version '1.1.0'
|
||||
id 'java'
|
||||
}
|
||||
|
||||
group = 'org.egovframe.cloud'
|
||||
version = '0.1'
|
||||
version = '1.0.0'
|
||||
sourceCompatibility = '1.8'
|
||||
|
||||
repositories {
|
||||
@@ -14,8 +14,8 @@ repositories {
|
||||
}
|
||||
|
||||
ext {
|
||||
set('springCloudVersion', "2021.0.3")
|
||||
set('log4j2.version', "2.17.2") // log4j 보안 패치
|
||||
set('springCloudVersion', '2021.0.7')
|
||||
set('log4j2.version', '2.20.0') // log4j 보안 패치
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -27,12 +27,11 @@ dependencies {
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-config' // config
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap' // config
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-bus-amqp' // bus
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-el:9.0.73'
|
||||
implementation 'net.logstash.logback:logstash-logback-encoder:7.2' // logstash logback
|
||||
implementation 'net.logstash.logback:logstash-logback-encoder:7.4' // logstash logback
|
||||
implementation 'io.jsonwebtoken:jjwt:0.9.1'
|
||||
implementation 'javax.xml.bind:jaxb-api:2.3.1'
|
||||
|
||||
implementation 'org.springdoc:springdoc-openapi-webflux-ui:1.6.9'
|
||||
implementation 'org.springdoc:springdoc-openapi-webflux-ui:1.7.0'
|
||||
|
||||
compileOnly 'org.projectlombok:lombok'
|
||||
annotationProcessor 'org.projectlombok:lombok'
|
||||
|
||||
@@ -69,7 +69,7 @@ management:
|
||||
info:
|
||||
app:
|
||||
name: Spring Cloud Gateway
|
||||
description: API <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> ȿ<><C8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
description: API 라우팅 및 보안, 모니터링/메트릭 등의 기능을 간단하고 효과적인 방법으로 제공
|
||||
swagger-ui: http://localhost:8000/webjars/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config
|
||||
|
||||
messages:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<!DOCTYPE xml>
|
||||
<Configuration>
|
||||
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
@@ -45,4 +46,4 @@
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
</configuration>
|
||||
</Configuration>
|
||||
@@ -1,14 +1,14 @@
|
||||
plugins {
|
||||
id 'org.springframework.boot' version '2.7.0'
|
||||
id "org.sonarqube" version "3.3"
|
||||
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
|
||||
id 'org.springframework.boot' version '2.7.12'
|
||||
id 'org.sonarqube' version '3.5.0.2730'
|
||||
id 'io.spring.dependency-management' version '1.1.0'
|
||||
// querydsl
|
||||
id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'
|
||||
id 'java'
|
||||
}
|
||||
|
||||
group = 'org.egovframe.cloud'
|
||||
version = '0.1'
|
||||
version = '1.0.0'
|
||||
sourceCompatibility = '1.8'
|
||||
|
||||
configurations {
|
||||
@@ -23,14 +23,14 @@ repositories {
|
||||
}
|
||||
|
||||
ext {
|
||||
set('springCloudVersion', "2021.0.3")
|
||||
set('log4j2.version', "2.17.2") // log4j 보안 패치
|
||||
set('springCloudVersion', '2021.0.7')
|
||||
set('log4j2.version', '2.20.0') // log4j 보안 패치
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// implementation files('../../module-common/build/libs/module-common-0.1.jar') // 공통 모듈, @ComponentScan(basePackages={"org.egovframe.cloud"}) 추가해야 적용된다
|
||||
implementation 'org.egovframe.cloud:module-common:0.1'
|
||||
implementation('org.egovframe.rte:org.egovframe.rte.fdl.cmmn:4.1.0') {
|
||||
// implementation files('../module-common/build/libs/module-common-4.2.0-plain.jar') // 공통 모듈, @ComponentScan(basePackages={"org.egovframe.cloud"}) 추가해야 적용된다
|
||||
implementation 'org.egovframe.cloud:module-common:4.2.0'
|
||||
implementation('org.egovframe.rte:org.egovframe.rte.fdl.cmmn:4.2.0') {
|
||||
exclude group: 'org.egovframe.rte', module: 'org.egovframe.rte.fdl.logging'
|
||||
}
|
||||
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
|
||||
@@ -44,12 +44,8 @@ dependencies {
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-bus-amqp' // bus
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'
|
||||
implementation 'org.springframework.cloud:spring-cloud-sleuth-zipkin'
|
||||
implementation 'org.apache.tomcat:tomcat-annotations-api:9.0.73'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-core:9.0.73'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-el:9.0.73'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-websocket:9.0.73'
|
||||
implementation 'net.logstash.logback:logstash-logback-encoder:7.2' // logstash logback
|
||||
implementation 'mysql:mysql-connector-java'
|
||||
implementation 'net.logstash.logback:logstash-logback-encoder:7.4' // logstash logback
|
||||
implementation 'mysql:mysql-connector-java:8.0.33'
|
||||
implementation 'io.jsonwebtoken:jjwt:0.9.1'
|
||||
// querydsl
|
||||
implementation 'com.querydsl:querydsl-jpa:5.0.0'
|
||||
@@ -62,8 +58,8 @@ dependencies {
|
||||
implementation 'org.springframework.cloud:spring-cloud-stream-binder-rabbit'
|
||||
|
||||
// openapi docs
|
||||
implementation 'org.springdoc:springdoc-openapi-webmvc-core:1.6.9'
|
||||
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
|
||||
implementation 'org.springdoc:springdoc-openapi-webmvc-core:1.7.0'
|
||||
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
|
||||
|
||||
// lombok
|
||||
implementation 'org.projectlombok:lombok'
|
||||
@@ -72,10 +68,11 @@ dependencies {
|
||||
testAnnotationProcessor 'org.projectlombok:lombok'
|
||||
|
||||
testImplementation 'com.h2database:h2'
|
||||
testImplementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.8.0' // 테스트시에만 출력
|
||||
testImplementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.8.1' // 테스트시에만 출력
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
|
||||
implementation 'org.javassist:javassist:3.29.0-GA'
|
||||
implementation 'org.javassist:javassist:3.29.2-GA'
|
||||
implementation 'org.webjars:webjars-locator-core:0.53'
|
||||
}
|
||||
|
||||
dependencyManagement {
|
||||
|
||||
@@ -30,4 +30,4 @@ management:
|
||||
info:
|
||||
app:
|
||||
name: Board Service
|
||||
description: <EFBFBD>Խ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>, <20>Խù<D4BD><C3B9><EFBFBD><EFBFBD><EFBFBD>, ÷<><C3B7><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD><CFB0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
description: 게시판관리, 게시물관리, 첨부파일관리 기능을 제공
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<!DOCTYPE xml>
|
||||
<Configuration>
|
||||
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
@@ -45,4 +46,4 @@
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
</configuration>
|
||||
</Configuration>
|
||||
@@ -1,11 +1,11 @@
|
||||
plugins {
|
||||
id 'org.springframework.boot' version '2.7.0'
|
||||
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
|
||||
id 'org.springframework.boot' version '2.7.12'
|
||||
id 'io.spring.dependency-management' version '1.1.0'
|
||||
id 'java'
|
||||
}
|
||||
|
||||
group = 'org.egovframe.cloud'
|
||||
version = '0.1'
|
||||
version = '1.0.0'
|
||||
sourceCompatibility = '1.8'
|
||||
|
||||
repositories {
|
||||
@@ -13,8 +13,8 @@ repositories {
|
||||
}
|
||||
|
||||
ext {
|
||||
set('springCloudVersion', "2021.0.3")
|
||||
set('log4j2.version', "2.17.2") // log4j 보안 패치
|
||||
set('springCloudVersion', '2021.0.7')
|
||||
set('log4j2.version', '2.20.0') // log4j 보안 패치
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -23,11 +23,7 @@ dependencies {
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap'
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-bus-amqp' // bus
|
||||
implementation 'org.springframework.boot:spring-boot-starter-actuator' // bus
|
||||
implementation 'org.apache.tomcat:tomcat-annotations-api:9.0.73'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-core:9.0.73'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-el:9.0.73'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-websocket:9.0.73'
|
||||
implementation 'net.logstash.logback:logstash-logback-encoder:7.2' // logstash logback
|
||||
implementation 'net.logstash.logback:logstash-logback-encoder:7.4' // logstash logback
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
}
|
||||
|
||||
|
||||
38
backend/config/config/application.yml
Normal file
38
backend/config/config/application.yml
Normal file
@@ -0,0 +1,38 @@
|
||||
# 2시간(7,200,000), 1일(86,400,000) jwt token
|
||||
token:
|
||||
expiration_time: 7200000
|
||||
refresh_time: 86400000
|
||||
secret: 'token_secret'
|
||||
|
||||
eureka:
|
||||
instance:
|
||||
instance-id: ${spring.application.name}:${spring.application.instance_id:${random.value}} # random port 사용시 eureka server에 인스턴스가 각각 표시되지 않는다
|
||||
preferIpAddress: true # 서비스간 통신 시 hostname 보다 ip 를 우선
|
||||
client:
|
||||
register-with-eureka: true # eureka 서버에 등록
|
||||
fetch-registry: true # 외부 검색 가능
|
||||
service-url:
|
||||
defaultZone: http://admin:admin@${eureka.instance.hostname:localhost}:8761/eureka
|
||||
|
||||
# file attach location - messages{lang}.properties 도 이 경로에 위치한다.
|
||||
file:
|
||||
directory: ${app.home:${user.home}}/msa-attach-volume # url 사용시에는 사용되지 않는다
|
||||
url: http://${file.hostname:localhost}:8080 # nginx 로 파일 다운로드 처리
|
||||
messages:
|
||||
directory: ${file.directory}/messages
|
||||
|
||||
apigateway:
|
||||
host: http://${apigateway.hostname:localhost}:${server.port}
|
||||
|
||||
# rabbitmq server
|
||||
spring:
|
||||
rabbitmq:
|
||||
host: ${rabbitmq.hostname:localhost}
|
||||
port: 5672
|
||||
username: guest
|
||||
password: guest
|
||||
zipkin:
|
||||
base-url: http://${zipkin.hostname:localhost}:${zipkin.port:9411}
|
||||
|
||||
egov:
|
||||
message: hello
|
||||
46
backend/config/config/board-service-test.yml
Normal file
46
backend/config/config/board-service-test.yml
Normal file
@@ -0,0 +1,46 @@
|
||||
spring:
|
||||
application:
|
||||
name: board-service
|
||||
|
||||
datasource:
|
||||
url: jdbc:h2:mem:testdb;MODE=MYSQL;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false
|
||||
username: sa
|
||||
password:
|
||||
driver-class-name: org.h2.Driver
|
||||
jpa:
|
||||
# database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
|
||||
hibernate:
|
||||
generate-ddl: true
|
||||
ddl-auto: create-drop
|
||||
# dialect: org.hibernate.dialect.MySQL5InnoDBDialect
|
||||
properties:
|
||||
hibernate:
|
||||
format_sql: true
|
||||
default_batch_fetch_size: 1000 # 1:N 관계를 해결하기 위해 필요
|
||||
show-sql: true
|
||||
h2:
|
||||
console:
|
||||
enabled: true
|
||||
path: /h2
|
||||
|
||||
logging.level:
|
||||
org.hibernate.SQL: debug
|
||||
|
||||
file:
|
||||
directory: ${user.home}/msa-attach-volume
|
||||
messages:
|
||||
directory: ${file.directory}/messages
|
||||
|
||||
# jwt token
|
||||
token:
|
||||
secret: egovframe_user_token
|
||||
|
||||
# ftp server
|
||||
ftp:
|
||||
enabled: false # ftp 사용 여부, FTP 서버에 최상위 디렉토리 자동 생성 및 구현체를 결정하게 된다.
|
||||
|
||||
# eureka 가 포함되면 eureka server 도 등록되므로 해제한다.
|
||||
eureka:
|
||||
client:
|
||||
register-with-eureka: false
|
||||
fetch-registry: false
|
||||
15
backend/config/config/board-service.yml
Normal file
15
backend/config/config/board-service.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
database:
|
||||
url: jdbc:mysql://${mysql.hostname:localhost}:3306/msaportal
|
||||
|
||||
spring:
|
||||
datasource:
|
||||
url: ${database.url}?serverTimezone=Asia/Seoul
|
||||
username: msaportal
|
||||
password: msaportal
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
cloud:
|
||||
stream:
|
||||
bindings:
|
||||
attachmentEntity-out-0: # 첨부파일 entity 정보 업데이트 하기 위한 이벤트
|
||||
destination: attachment-entity.topic # queue name
|
||||
group: attachment
|
||||
44
backend/config/config/portal-service-test.yml
Normal file
44
backend/config/config/portal-service-test.yml
Normal file
@@ -0,0 +1,44 @@
|
||||
spring:
|
||||
application:
|
||||
name: portal-service
|
||||
|
||||
datasource:
|
||||
url: jdbc:h2:mem:testdb;MODE=MYSQL;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false
|
||||
username: sa
|
||||
password:
|
||||
driver-class-name: org.h2.Driver
|
||||
jpa:
|
||||
hibernate:
|
||||
generate-ddl: true
|
||||
ddl-auto: create-drop
|
||||
properties:
|
||||
hibernate:
|
||||
format_sql: true
|
||||
default_batch_fetch_size: 1000 # 1:N 관계를 해결하기 위해 필요
|
||||
show-sql: true
|
||||
h2:
|
||||
console:
|
||||
enabled: true
|
||||
path: /h2
|
||||
|
||||
logging.level:
|
||||
org.hibernate.SQL: debug
|
||||
|
||||
file:
|
||||
directory: ${user.home}/msa-attach-volume
|
||||
messages:
|
||||
directory: ${file.directory}/messages
|
||||
|
||||
# jwt token
|
||||
token:
|
||||
secret: egovframe_user_token
|
||||
|
||||
# ftp server
|
||||
ftp:
|
||||
enabled: false # ftp 사용 여부, FTP 서버에 최상위 디렉토리 자동 생성 및 구현체를 결정하게 된다.
|
||||
|
||||
# eureka 가 포함되면 eureka server 도 등록되므로 해제한다.
|
||||
eureka:
|
||||
client:
|
||||
register-with-eureka: false
|
||||
fetch-registry: false
|
||||
33
backend/config/config/portal-service.yml
Normal file
33
backend/config/config/portal-service.yml
Normal file
@@ -0,0 +1,33 @@
|
||||
database:
|
||||
url: jdbc:mysql://${mysql.hostname:localhost}:3306/msaportal
|
||||
|
||||
spring:
|
||||
datasource:
|
||||
url: ${database.url}?serverTimezone=Asia/Seoul
|
||||
username: msaportal
|
||||
password: msaportal
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
cloud:
|
||||
bus:
|
||||
destination: springCloudBus
|
||||
stream:
|
||||
function:
|
||||
definition: attachmentEntity;busConsumer # 첨부파일 entity 정보 업데이트 하기 위한 이벤트에 대한 consumer function & springcloudbus consumer function
|
||||
bindings:
|
||||
busConsumer-in-0:
|
||||
destination: ${spring.cloud.bus.destination}
|
||||
attachmentEntity-in-0: # 첨부파일 entity 정보 업데이트 하기 위한 이벤트
|
||||
destination: attachment-entity.topic # queue name
|
||||
group: attachment
|
||||
attachmentEntity-out-0: # 첨부파일 entity 정보 업데이트 하기 위한 이벤트
|
||||
destination: attachment-entity.topic # queue name
|
||||
group: attachment
|
||||
|
||||
# ftp server
|
||||
ftp:
|
||||
hostname: 'ftp_server_hostname'
|
||||
username: 'ftp_server_username'
|
||||
password: 'ftp_server_password'
|
||||
port: 21
|
||||
directory: /mnt
|
||||
enabled: false # ftp 사용 여부, FTP 서버에 최상위 디렉토리 자동 생성 및 구현체를 결정하게 된다.
|
||||
46
backend/config/config/reserve-check-service-test.yml
Normal file
46
backend/config/config/reserve-check-service-test.yml
Normal file
@@ -0,0 +1,46 @@
|
||||
spring:
|
||||
application:
|
||||
name: reserve-check-service
|
||||
|
||||
datasource:
|
||||
url: jdbc:h2:mem:testdb;MODE=MYSQL;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false
|
||||
username: sa
|
||||
password:
|
||||
driver-class-name: org.h2.Driver
|
||||
jpa:
|
||||
# database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
|
||||
hibernate:
|
||||
generate-ddl: true
|
||||
ddl-auto: create-drop
|
||||
# dialect: org.hibernate.dialect.MySQL5InnoDBDialect
|
||||
properties:
|
||||
hibernate:
|
||||
format_sql: true
|
||||
default_batch_fetch_size: 1000 # 1:N 관계를 해결하기 위해 필요
|
||||
show-sql: true
|
||||
h2:
|
||||
console:
|
||||
enabled: true
|
||||
path: /h2
|
||||
|
||||
logging.level:
|
||||
org.hibernate.SQL: debug
|
||||
|
||||
file:
|
||||
directory: ${user.home}/msa-attach-volume
|
||||
messages:
|
||||
directory: ${file.directory}/messages
|
||||
|
||||
# jwt token
|
||||
token:
|
||||
secret: egovframe_user_token
|
||||
|
||||
# ftp server
|
||||
ftp:
|
||||
enabled: false # ftp 사용 여부, FTP 서버에 최상위 디렉토리 자동 생성 및 구현체를 결정하게 된다.
|
||||
|
||||
# eureka 가 포함되면 eureka server 도 등록되므로 해제한다.
|
||||
eureka:
|
||||
client:
|
||||
register-with-eureka: false
|
||||
fetch-registry: false
|
||||
11
backend/config/config/reserve-check-service.yml
Normal file
11
backend/config/config/reserve-check-service.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
spring:
|
||||
r2dbc:
|
||||
url: r2dbc:mysql://${mysql.hostname:localhost}:3306/reservation?serverTimezone=Asia/Seoul
|
||||
username: msaportal
|
||||
password: msaportal
|
||||
cloud:
|
||||
stream:
|
||||
bindings:
|
||||
attachmentEntity-out-0: # 첨부파일 entity 정보 업데이트 하기 위한 이벤트
|
||||
destination: attachment-entity.topic # queue name
|
||||
group: attachment
|
||||
46
backend/config/config/reserve-item-service-test.yml
Normal file
46
backend/config/config/reserve-item-service-test.yml
Normal file
@@ -0,0 +1,46 @@
|
||||
spring:
|
||||
application:
|
||||
name: reserve-item-service
|
||||
|
||||
datasource:
|
||||
url: jdbc:h2:mem:testdb;MODE=MYSQL;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false
|
||||
username: sa
|
||||
password:
|
||||
driver-class-name: org.h2.Driver
|
||||
jpa:
|
||||
# database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
|
||||
hibernate:
|
||||
generate-ddl: true
|
||||
ddl-auto: create-drop
|
||||
# dialect: org.hibernate.dialect.MySQL5InnoDBDialect
|
||||
properties:
|
||||
hibernate:
|
||||
format_sql: true
|
||||
default_batch_fetch_size: 1000 # 1:N 관계를 해결하기 위해 필요
|
||||
show-sql: true
|
||||
h2:
|
||||
console:
|
||||
enabled: true
|
||||
path: /h2
|
||||
|
||||
logging.level:
|
||||
org.hibernate.SQL: debug
|
||||
|
||||
file:
|
||||
directory: ${user.home}/msa-attach-volume
|
||||
messages:
|
||||
directory: ${file.directory}/messages
|
||||
|
||||
# jwt token
|
||||
token:
|
||||
secret: egovframe_user_token
|
||||
|
||||
# ftp server
|
||||
ftp:
|
||||
enabled: false # ftp 사용 여부, FTP 서버에 최상위 디렉토리 자동 생성 및 구현체를 결정하게 된다.
|
||||
|
||||
# eureka 가 포함되면 eureka server 도 등록되므로 해제한다.
|
||||
eureka:
|
||||
client:
|
||||
register-with-eureka: false
|
||||
fetch-registry: false
|
||||
20
backend/config/config/reserve-item-service.yml
Normal file
20
backend/config/config/reserve-item-service.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
spring:
|
||||
r2dbc:
|
||||
url: r2dbc:mysql://${mysql.hostname:localhost}:3306/msaportal?serverTimezone=Asia/Seoul
|
||||
username: msaportal
|
||||
password: msaportal
|
||||
cloud:
|
||||
bus:
|
||||
destination: springCloudBus
|
||||
stream:
|
||||
function:
|
||||
definition: reserveRequest;busConsumer # 예약 요청후 물품 재고업데이트 이벤트에 대한 consumer function & springcloudbus consumer function
|
||||
bindings:
|
||||
busConsumer-in-0:
|
||||
destination: ${spring.cloud.bus.destination}
|
||||
reserveRequest-in-0: # 예약 요청후 물품 재고업데이트 이벤트에 대한 consumer binding
|
||||
destination: reserve-request.topic # queue name
|
||||
group: reserved
|
||||
inventoryUpdated-out-0: # 예약 요청후 물품 재고업데이트 결과에 이벤트에 대한 supplier binding
|
||||
destination: inventory-updated.topic # queue name
|
||||
group: reserved
|
||||
46
backend/config/config/reserve-request-service-test.yml
Normal file
46
backend/config/config/reserve-request-service-test.yml
Normal file
@@ -0,0 +1,46 @@
|
||||
spring:
|
||||
application:
|
||||
name: reserve-request-service
|
||||
|
||||
datasource:
|
||||
url: jdbc:h2:mem:testdb;MODE=MYSQL;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false
|
||||
username: sa
|
||||
password:
|
||||
driver-class-name: org.h2.Driver
|
||||
jpa:
|
||||
# database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
|
||||
hibernate:
|
||||
generate-ddl: true
|
||||
ddl-auto: create-drop
|
||||
# dialect: org.hibernate.dialect.MySQL5InnoDBDialect
|
||||
properties:
|
||||
hibernate:
|
||||
format_sql: true
|
||||
default_batch_fetch_size: 1000 # 1:N 관계를 해결하기 위해 필요
|
||||
show-sql: true
|
||||
h2:
|
||||
console:
|
||||
enabled: true
|
||||
path: /h2
|
||||
|
||||
logging.level:
|
||||
org.hibernate.SQL: debug
|
||||
|
||||
file:
|
||||
directory: ${user.home}/msa-attach-volume
|
||||
messages:
|
||||
directory: ${file.directory}/messages
|
||||
|
||||
# jwt token
|
||||
token:
|
||||
secret: egovframe_user_token
|
||||
|
||||
# ftp server
|
||||
ftp:
|
||||
enabled: false # ftp 사용 여부, FTP 서버에 최상위 디렉토리 자동 생성 및 구현체를 결정하게 된다.
|
||||
|
||||
# eureka 가 포함되면 eureka server 도 등록되므로 해제한다.
|
||||
eureka:
|
||||
client:
|
||||
register-with-eureka: false
|
||||
fetch-registry: false
|
||||
20
backend/config/config/reserve-request-service.yml
Normal file
20
backend/config/config/reserve-request-service.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
spring:
|
||||
r2dbc:
|
||||
url: r2dbc:mysql://${mysql.hostname:localhost}:3306/reservation?serverTimezone=Asia/Seoul
|
||||
username: msaportal
|
||||
password: msaportal
|
||||
cloud:
|
||||
bus:
|
||||
destination: springCloudBus
|
||||
stream:
|
||||
function:
|
||||
definition: inventoryUpdated;busConsumer # 예약 요청후 물품 재고업데이트 결과에 이벤트에 대한 consumer function & springcloudbus consumer function
|
||||
bindings:
|
||||
busConsumer-in-0:
|
||||
destination: ${spring.cloud.bus.destination}
|
||||
reserveRequest-out-0: # 예약 요청후 물품 재고업데이트 이벤트에 대한 supplier binding
|
||||
destination: reserve-request.topic # queue name
|
||||
group: reserved
|
||||
inventoryUpdated-in-0: # 예약 요청후 물품 재고업데이트 결과에 이벤트에 대한 consumer binding
|
||||
destination: inventory-updated.topic # queue name
|
||||
group: reserved
|
||||
107
backend/config/config/user-service-test.yml
Normal file
107
backend/config/config/user-service-test.yml
Normal file
@@ -0,0 +1,107 @@
|
||||
spring:
|
||||
application:
|
||||
name: user-service
|
||||
|
||||
datasource:
|
||||
url: jdbc:h2:mem:testdb;MODE=MYSQL;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false
|
||||
username: sa
|
||||
password:
|
||||
driver-class-name: org.h2.Driver
|
||||
initialization-mode: always
|
||||
# schema: classpath:h2/schema.sql
|
||||
data: classpath:h2/data.sql
|
||||
jpa:
|
||||
hibernate:
|
||||
generate-ddl: true
|
||||
ddl-auto: create-drop
|
||||
dialect: org.hibernate.dialect.MySQL5Dialect
|
||||
properties:
|
||||
hibernate:
|
||||
format_sql: true
|
||||
default_batch_fetch_size: 1000 # 1:N 관계를 해결하기 위해 필요
|
||||
show-sql: true
|
||||
h2:
|
||||
console:
|
||||
enabled: true
|
||||
path: /h2
|
||||
cache:
|
||||
jcache:
|
||||
config: classpath:ehcache.xml
|
||||
mail: # 비밀번호 변경 이메일 발송
|
||||
host: smtp.gmail.com # smtp host
|
||||
port: 587 # smtp port
|
||||
username: email_username # 계정
|
||||
password: 'email_password' # 비밀번호 - 구글 보안 2단계 인증 해제, 보안 수준이 낮은 앱의 액세스 허용(https://myaccount.google.com/lesssecureapps)
|
||||
properties:
|
||||
mail:
|
||||
smtp:
|
||||
auth: true
|
||||
starttls:
|
||||
enable: true
|
||||
required: true
|
||||
security:
|
||||
# oauth2 를 사용하려면 아래 google, naver, kakao 의 client-id, client-secret 을 발급받아야 한다.
|
||||
oauth2:
|
||||
client:
|
||||
registration:
|
||||
# /oauth2/authorization/google
|
||||
google:
|
||||
client-id: google_client_id # TODO
|
||||
client-secret: google_client_secret # TODO
|
||||
scope: profile,email
|
||||
# 네이버는 Spring Security를 공식 지원하지 않기 때문에 CommonOAuth2Provider 에서 해주는 값들을 수동으로 입력한다.
|
||||
# /oauth2/authorization/naver
|
||||
naver:
|
||||
client-id: naver_client_id # TODO
|
||||
client-secret: naver_client_secret # TODO
|
||||
redirect_uri: "{baseUrl}/{action}/oauth2/code/{registrationId}"
|
||||
authorization_grant_type: authorization_code
|
||||
scope: name,email,profile_image
|
||||
client-name: Naver
|
||||
# /oauth2/authorization/kakao
|
||||
kakao:
|
||||
client-id: kakao_client_id # TODO
|
||||
client-secret: kakao_client_secret # TODO
|
||||
redirect-uri: "{baseUrl}/{action}/oauth2/code/{registrationId}"
|
||||
client-authentication-method: POST
|
||||
authorization-grant-type: authorization_code
|
||||
scope: profile_nickname, account_email
|
||||
client-name: Kakao
|
||||
provider:
|
||||
naver:
|
||||
authorization_uri: https://nid.naver.com/oauth2.0/authorize
|
||||
token_uri: https://nid.naver.com/oauth2.0/token
|
||||
user-info-uri: https://openapi.naver.com/v1/nid/me
|
||||
# 기준이 되는 user_name 의 이름을 네이버에서는 response로 지정해야한다. (네이버 회원 조회시 반환되는 JSON 형태 때문이다)
|
||||
# response를 user_name으로 지정하고 이후 자바 코드로 response의 id를 user_name으로 지정한다. (스프링 시큐리티에서 하위 필드를 명시할 수 없기 때문)
|
||||
user_name_attribute: response
|
||||
kakao:
|
||||
authorization_uri: https://kauth.kakao.com/oauth/authorize
|
||||
token_uri: https://kauth.kakao.com/oauth/token
|
||||
user-info-uri: https://kapi.kakao.com/v2/user/me
|
||||
user_name_attribute: id
|
||||
|
||||
logging.level:
|
||||
org.hibernate.SQL: debug
|
||||
org.hibernate.type: trace
|
||||
|
||||
file:
|
||||
directory: ${user.home}/msa-attach-volume
|
||||
messages:
|
||||
directory: ${file.directory}/messages
|
||||
|
||||
# jwt token
|
||||
token:
|
||||
expiration_time: 7200000
|
||||
refresh_time: 86400000
|
||||
secret: egovframe_token_secret
|
||||
|
||||
# ftp server
|
||||
ftp:
|
||||
enabled: false # ftp 사용 여부, FTP 서버에 최상위 디렉토리 자동 생성 및 구현체를 결정하게 된다.
|
||||
|
||||
# eureka 가 포함되면 eureka server 도 등록되므로 해제한다.
|
||||
eureka:
|
||||
client:
|
||||
register-with-eureka: false
|
||||
fetch-registry: false
|
||||
21
backend/config/config/user-service.yml
Normal file
21
backend/config/config/user-service.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
database:
|
||||
url: jdbc:mysql://${mysql.hostname:localhost}:3306/msaportal
|
||||
|
||||
spring:
|
||||
datasource:
|
||||
url: ${database.url}?serverTimezone=Asia/Seoul
|
||||
username: msaportal
|
||||
password: msaportal
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
mail: # 비밀번호 변경 이메일 발송
|
||||
host: smtp.gmail.com # smtp host
|
||||
port: 587 # smtp port
|
||||
username: email_username # 계정
|
||||
password: 'email_password' # 비밀번호 - 구글 보안 2단계 인증 해제, 보안 수준이 낮은 앱의 액세스 허용(https://myaccount.google.com/lesssecureapps)
|
||||
properties:
|
||||
mail:
|
||||
smtp:
|
||||
auth: true
|
||||
starttls:
|
||||
enable: true
|
||||
required: true
|
||||
@@ -10,7 +10,8 @@ spring:
|
||||
config:
|
||||
server:
|
||||
native:
|
||||
search-locations: ${search.location:file:///${user.home}/workspace.edu/egovframe-msa-edu/config} # Windows
|
||||
search-locations: file:./config
|
||||
# search-locations: ${search.location:file:///${user.home}/workspace.edu/egovframe-msa-edu/config} # Windows
|
||||
# search-locations: file://${user.home}/workspace.edu/egovframe-msa-edu/config # MacOS
|
||||
rabbitmq:
|
||||
host: ${rabbitmq.hostname:localhost}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<!DOCTYPE xml>
|
||||
<Configuration>
|
||||
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
@@ -45,4 +46,4 @@
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
</configuration>
|
||||
</Configuration>
|
||||
@@ -1,11 +1,11 @@
|
||||
plugins {
|
||||
id 'org.springframework.boot' version '2.7.0'
|
||||
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
|
||||
id 'org.springframework.boot' version '2.7.12'
|
||||
id 'io.spring.dependency-management' version '1.1.0'
|
||||
id 'java'
|
||||
}
|
||||
|
||||
group = 'org.egovframe.cloud'
|
||||
version = '0.1'
|
||||
version = '1.0.0'
|
||||
sourceCompatibility = '1.8'
|
||||
|
||||
repositories {
|
||||
@@ -13,17 +13,13 @@ repositories {
|
||||
}
|
||||
|
||||
ext {
|
||||
set('springCloudVersion', "2021.0.3")
|
||||
set('log4j2.version', "2.17.2") // log4j 보안 패치
|
||||
set('springCloudVersion', '2021.0.7')
|
||||
set('log4j2.version', '2.20.0') // log4j 보안 패치
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-security'
|
||||
implementation 'org.apache.tomcat:tomcat-annotations-api:9.0.73'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-core:9.0.73'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-el:9.0.73'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-websocket:9.0.73'
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
}
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
plugins {
|
||||
id 'org.springframework.boot' version '2.7.0'
|
||||
id "org.sonarqube" version "3.3"
|
||||
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
|
||||
id 'org.springframework.boot' version '2.7.12'
|
||||
id 'org.sonarqube' version '3.5.0.2730'
|
||||
id 'io.spring.dependency-management' version '1.1.0'
|
||||
// querydsl
|
||||
id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'
|
||||
id 'java'
|
||||
}
|
||||
|
||||
group = 'org.egovframe.cloud'
|
||||
version = '0.1'
|
||||
version = '1.0.0'
|
||||
sourceCompatibility = '1.8'
|
||||
|
||||
configurations {
|
||||
@@ -23,14 +23,14 @@ repositories {
|
||||
}
|
||||
|
||||
ext {
|
||||
set('springCloudVersion', "2021.0.3")
|
||||
set('log4j2.version', "2.17.2") // log4j 보안 패치
|
||||
set('springCloudVersion', '2021.0.7')
|
||||
set('log4j2.version', '2.20.0') // log4j 보안 패치
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// implementation files('../../module-common/build/libs/module-common-0.1.jar') // 공통 모듈, @ComponentScan(basePackages={"org.egovframe.cloud"}) 추가해야 적용된다
|
||||
implementation 'org.egovframe.cloud:module-common:0.1'
|
||||
implementation('org.egovframe.rte:org.egovframe.rte.fdl.cmmn:4.1.0') {
|
||||
// implementation files('../module-common/build/libs/module-common-4.2.0-plain.jar') // 공통 모듈, @ComponentScan(basePackages={"org.egovframe.cloud"}) 추가해야 적용된다
|
||||
implementation 'org.egovframe.cloud:module-common:4.2.0'
|
||||
implementation('org.egovframe.rte:org.egovframe.rte.fdl.cmmn:4.2.0') {
|
||||
exclude group: 'org.egovframe.rte', module: 'org.egovframe.rte.fdl.logging'
|
||||
}
|
||||
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
|
||||
@@ -46,13 +46,10 @@ dependencies {
|
||||
implementation 'org.springframework.cloud:spring-cloud-sleuth-zipkin'
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-circuitbreaker-resilience4j'
|
||||
implementation 'org.apache.tomcat:tomcat-annotations-api:9.0.73'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-core:9.0.73'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-el:9.0.73'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-websocket:9.0.73'
|
||||
implementation 'net.logstash.logback:logstash-logback-encoder:7.2' // logstash logback
|
||||
implementation 'commons-net:commons-net:3.8.0' // FTPClient
|
||||
implementation 'mysql:mysql-connector-java'
|
||||
implementation 'net.logstash.logback:logstash-logback-encoder:7.4' // logstash logback
|
||||
implementation 'commons-io:commons-io:2.13.0'
|
||||
implementation 'commons-net:commons-net:3.9.0' // FTPClient
|
||||
implementation 'mysql:mysql-connector-java:8.0.33'
|
||||
implementation 'io.jsonwebtoken:jjwt:0.9.1'
|
||||
|
||||
//messaging
|
||||
@@ -64,8 +61,8 @@ dependencies {
|
||||
annotationProcessor 'com.querydsl:querydsl-apt:5.0.0'
|
||||
|
||||
// openapi docs
|
||||
implementation 'org.springdoc:springdoc-openapi-webmvc-core:1.6.9'
|
||||
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
|
||||
implementation 'org.springdoc:springdoc-openapi-webmvc-core:1.7.0'
|
||||
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
|
||||
|
||||
// lombok
|
||||
implementation 'org.projectlombok:lombok'
|
||||
@@ -74,10 +71,11 @@ dependencies {
|
||||
testAnnotationProcessor 'org.projectlombok:lombok'
|
||||
|
||||
testImplementation 'com.h2database:h2'
|
||||
testImplementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.8.0' // 테스트시에만 출력
|
||||
testImplementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.8.1' // 테스트시에만 출력
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
|
||||
implementation 'org.javassist:javassist:3.29.0-GA'
|
||||
implementation 'org.javassist:javassist:3.29.2-GA'
|
||||
implementation 'org.webjars:webjars-locator-core:0.53'
|
||||
}
|
||||
|
||||
dependencyManagement {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<!DOCTYPE xml>
|
||||
<Configuration>
|
||||
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
@@ -45,4 +46,4 @@
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
</configuration>
|
||||
</Configuration>
|
||||
@@ -1,11 +1,11 @@
|
||||
plugins {
|
||||
id 'org.springframework.boot' version '2.7.0'
|
||||
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
|
||||
id 'org.springframework.boot' version '2.7.12'
|
||||
id 'io.spring.dependency-management' version '1.1.0'
|
||||
id 'java'
|
||||
}
|
||||
|
||||
group = 'org.egovframe.cloud'
|
||||
version = '0.1'
|
||||
version = '1.0.0'
|
||||
sourceCompatibility = '1.8'
|
||||
|
||||
configurations {
|
||||
@@ -20,14 +20,14 @@ repositories {
|
||||
}
|
||||
|
||||
ext {
|
||||
set('springCloudVersion', "2021.0.3")
|
||||
set('log4j2.version', "2.17.2") // log4j 보안 패치
|
||||
set('springCloudVersion', '2021.0.7')
|
||||
set('log4j2.version', '2.20.0') // log4j 보안 패치
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// implementation files('../../module-common/build/libs/module-common-0.1.jar') // @ComponentScan(basePackages={"org.egovframe.cloud"}) 추가해야 적용된다
|
||||
implementation 'org.egovframe.cloud:module-common:0.1'
|
||||
implementation('org.egovframe.rte:org.egovframe.rte.fdl.cmmn:4.1.0') {
|
||||
// implementation files('../module-common/build/libs/module-common-4.2.0-plain.jar') // @ComponentScan(basePackages={"org.egovframe.cloud"}) 추가해야 적용된다
|
||||
implementation 'org.egovframe.cloud:module-common:4.2.0'
|
||||
implementation('org.egovframe.rte:org.egovframe.rte.fdl.cmmn:4.2.0') {
|
||||
exclude group: 'org.egovframe.rte', module: 'org.egovframe.rte.fdl.logging'
|
||||
}
|
||||
implementation 'org.springframework.boot:spring-boot-starter-data-r2dbc'
|
||||
@@ -40,12 +40,11 @@ dependencies {
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap' // config
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-bus-amqp' // bus
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-circuitbreaker-reactor-resilience4j'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-el:9.0.73'
|
||||
implementation 'com.playtika.reactivefeign:feign-reactor-spring-cloud-starter:3.2.1'
|
||||
implementation 'com.playtika.reactivefeign:feign-reactor-spring-cloud-starter:3.2.11'
|
||||
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'
|
||||
implementation 'org.springframework.cloud:spring-cloud-sleuth-zipkin'
|
||||
implementation 'net.logstash.logback:logstash-logback-encoder:7.2' // logstash logback
|
||||
implementation 'net.logstash.logback:logstash-logback-encoder:7.4' // logstash logback
|
||||
|
||||
//messaging
|
||||
implementation 'org.springframework.cloud:spring-cloud-stream'
|
||||
@@ -54,10 +53,10 @@ dependencies {
|
||||
implementation 'io.jsonwebtoken:jjwt:0.9.1'
|
||||
|
||||
implementation 'dev.miku:r2dbc-mysql:0.8.2.RELEASE'
|
||||
implementation 'mysql:mysql-connector-java'
|
||||
implementation 'mysql:mysql-connector-java:8.0.33'
|
||||
|
||||
// openapi docs
|
||||
implementation 'org.springdoc:springdoc-openapi-webflux-ui:1.6.9'
|
||||
implementation 'org.springdoc:springdoc-openapi-webflux-ui:1.7.0'
|
||||
|
||||
//lombok
|
||||
implementation 'org.projectlombok:lombok'
|
||||
@@ -71,6 +70,8 @@ dependencies {
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
testImplementation 'io.projectreactor:reactor-test'
|
||||
testImplementation 'org.springframework.security:spring-security-test'
|
||||
|
||||
implementation 'org.webjars:webjars-locator-core:0.53'
|
||||
}
|
||||
|
||||
test {
|
||||
|
||||
@@ -6,8 +6,6 @@ import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
|
||||
import reactivefeign.spring.config.EnableReactiveFeignClients;
|
||||
//import reactor.blockhound.BlockHound;
|
||||
|
||||
import java.security.Security;
|
||||
|
||||
@ComponentScan({"org.egovframe.cloud.common", "org.egovframe.cloud.reactive", "org.egovframe.cloud.reservechecksevice"}) // org.egovframe.cloud.common package 포함하기 위해
|
||||
|
||||
@@ -15,4 +15,4 @@ management:
|
||||
info:
|
||||
app:
|
||||
name: Reserve Check Service
|
||||
description: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>Ȯ<EFBFBD><C8AE>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
description: 예약시스템 기능 중 예약확인, 예약승인/취소 기능을 제공
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<!DOCTYPE xml>
|
||||
<Configuration>
|
||||
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
@@ -45,4 +46,4 @@
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
</configuration>
|
||||
</Configuration>
|
||||
@@ -1,11 +1,11 @@
|
||||
plugins {
|
||||
id 'org.springframework.boot' version '2.7.0'
|
||||
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
|
||||
id 'org.springframework.boot' version '2.7.12'
|
||||
id 'io.spring.dependency-management' version '1.1.0'
|
||||
id 'java'
|
||||
}
|
||||
|
||||
group = 'org.egovframe.cloud'
|
||||
version = '0.1'
|
||||
version = '1.0.0'
|
||||
sourceCompatibility = '1.8'
|
||||
|
||||
configurations {
|
||||
@@ -20,14 +20,14 @@ repositories {
|
||||
}
|
||||
|
||||
ext {
|
||||
set('springCloudVersion', "2021.0.3")
|
||||
set('log4j2.version', "2.17.2") // log4j 보안 패치
|
||||
set('springCloudVersion', '2021.0.7')
|
||||
set('log4j2.version', '2.20.0') // log4j 보안 패치
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// implementation files('../../module-common/build/libs/module-common-0.1.jar') // @ComponentScan(basePackages={"org.egovframe.cloud"}) 추가해야 적용된다
|
||||
implementation 'org.egovframe.cloud:module-common:0.1'
|
||||
implementation('org.egovframe.rte:org.egovframe.rte.fdl.cmmn:4.1.0') {
|
||||
// implementation files('../module-common/build/libs/module-common-4.2.0-plain.jar') // @ComponentScan(basePackages={"org.egovframe.cloud"}) 추가해야 적용된다
|
||||
implementation 'org.egovframe.cloud:module-common:4.2.0'
|
||||
implementation('org.egovframe.rte:org.egovframe.rte.fdl.cmmn:4.2.0') {
|
||||
exclude group: 'org.egovframe.rte', module: 'org.egovframe.rte.fdl.logging'
|
||||
}
|
||||
implementation 'org.springframework.boot:spring-boot-starter-data-r2dbc'
|
||||
@@ -40,20 +40,19 @@ dependencies {
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap' // config
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-bus-amqp' // bus
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-circuitbreaker-reactor-resilience4j'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-el:9.0.73'
|
||||
implementation 'com.playtika.reactivefeign:feign-reactor-spring-cloud-starter:3.2.1'
|
||||
implementation 'com.playtika.reactivefeign:feign-reactor-spring-cloud-starter:3.2.11'
|
||||
|
||||
implementation 'io.jsonwebtoken:jjwt:0.9.1'
|
||||
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'
|
||||
implementation 'org.springframework.cloud:spring-cloud-sleuth-zipkin'
|
||||
implementation 'net.logstash.logback:logstash-logback-encoder:7.2' // logstash logback
|
||||
implementation 'net.logstash.logback:logstash-logback-encoder:7.4' // logstash logback
|
||||
|
||||
implementation 'dev.miku:r2dbc-mysql:0.8.2.RELEASE'
|
||||
implementation 'mysql:mysql-connector-java'
|
||||
implementation 'mysql:mysql-connector-java:8.0.33'
|
||||
|
||||
// openapi docs
|
||||
implementation 'org.springdoc:springdoc-openapi-webflux-ui:1.6.9'
|
||||
implementation 'org.springdoc:springdoc-openapi-webflux-ui:1.7.0'
|
||||
|
||||
//messaging
|
||||
implementation 'org.springframework.cloud:spring-cloud-stream'
|
||||
@@ -71,6 +70,8 @@ dependencies {
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
testImplementation 'io.projectreactor:reactor-test'
|
||||
testImplementation 'org.springframework.security:spring-security-test'
|
||||
|
||||
implementation 'org.webjars:webjars-locator-core:0.53'
|
||||
}
|
||||
|
||||
test {
|
||||
@@ -82,4 +83,3 @@ dependencyManagement {
|
||||
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,4 +15,4 @@ management:
|
||||
info:
|
||||
app:
|
||||
name: Reserve Item Service
|
||||
description: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>ǰ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
description: 예약시스템 기능 중 예약지역, 예약물품 관리 기능을 제공
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<!DOCTYPE xml>
|
||||
<Configuration>
|
||||
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
@@ -45,4 +46,4 @@
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
</configuration>
|
||||
</Configuration>
|
||||
@@ -1,11 +1,11 @@
|
||||
plugins {
|
||||
id 'org.springframework.boot' version '2.7.0'
|
||||
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
|
||||
id 'org.springframework.boot' version '2.7.12'
|
||||
id 'io.spring.dependency-management' version '1.1.0'
|
||||
id 'java'
|
||||
}
|
||||
|
||||
group = 'org.egovframe.cloud'
|
||||
version = '0.1'
|
||||
version = '1.0.0'
|
||||
sourceCompatibility = '1.8'
|
||||
|
||||
configurations {
|
||||
@@ -20,15 +20,14 @@ repositories {
|
||||
}
|
||||
|
||||
ext {
|
||||
set('springCloudVersion', "2021.0.3")
|
||||
set('log4j2.version', "2.17.2") // log4j 보안 패치
|
||||
set('springCloudVersion', '2021.0.7')
|
||||
set('log4j2.version', '2.20.0') // log4j 보안 패치
|
||||
}
|
||||
|
||||
|
||||
dependencies {
|
||||
// implementation files('../../module-common/build/libs/module-common-0.1.jar') // @ComponentScan(basePackages={"org.egovframe.cloud"}) 추가해야 적용된다
|
||||
implementation 'org.egovframe.cloud:module-common:0.1'
|
||||
implementation('org.egovframe.rte:org.egovframe.rte.fdl.cmmn:4.1.0') {
|
||||
// implementation files('../module-common/build/libs/module-common-4.2.0-plain.jar') // @ComponentScan(basePackages={"org.egovframe.cloud"}) 추가해야 적용된다
|
||||
implementation 'org.egovframe.cloud:module-common:4.2.0'
|
||||
implementation('org.egovframe.rte:org.egovframe.rte.fdl.cmmn:4.2.0') {
|
||||
exclude group: 'org.egovframe.rte', module: 'org.egovframe.rte.fdl.logging'
|
||||
}
|
||||
implementation 'org.springframework.boot:spring-boot-starter-data-r2dbc'
|
||||
@@ -41,26 +40,24 @@ dependencies {
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap' // config
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-bus-amqp' // bus
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-circuitbreaker-reactor-resilience4j'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-el:9.0.73'
|
||||
implementation 'com.playtika.reactivefeign:feign-reactor-spring-cloud-starter:3.2.1'
|
||||
implementation 'com.playtika.reactivefeign:feign-reactor-spring-cloud-starter:3.2.11'
|
||||
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'
|
||||
implementation 'org.springframework.cloud:spring-cloud-sleuth-zipkin'
|
||||
implementation 'net.logstash.logback:logstash-logback-encoder:7.2' // logstash logback
|
||||
implementation 'net.logstash.logback:logstash-logback-encoder:7.4' // logstash logback
|
||||
|
||||
//messaging
|
||||
implementation 'org.springframework.cloud:spring-cloud-stream'
|
||||
implementation 'org.springframework.cloud:spring-cloud-stream-binder-rabbit'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-amqp'
|
||||
|
||||
|
||||
implementation 'io.jsonwebtoken:jjwt:0.9.1'
|
||||
|
||||
implementation 'dev.miku:r2dbc-mysql:0.8.2.RELEASE'
|
||||
implementation 'mysql:mysql-connector-java'
|
||||
implementation 'mysql:mysql-connector-java:8.0.33'
|
||||
|
||||
// openapi docs
|
||||
implementation 'org.springdoc:springdoc-openapi-webflux-ui:1.6.9'
|
||||
implementation 'org.springdoc:springdoc-openapi-webflux-ui:1.7.0'
|
||||
|
||||
//lombok
|
||||
implementation 'org.projectlombok:lombok'
|
||||
@@ -75,6 +72,8 @@ dependencies {
|
||||
testImplementation 'io.projectreactor:reactor-test'
|
||||
testImplementation 'org.springframework.security:spring-security-test'
|
||||
testImplementation 'org.springframework.amqp:spring-rabbit-test'
|
||||
|
||||
implementation 'org.webjars:webjars-locator-core:0.53'
|
||||
}
|
||||
|
||||
test {
|
||||
|
||||
@@ -15,4 +15,4 @@ management:
|
||||
info:
|
||||
app:
|
||||
name: Reserve Request Service
|
||||
description: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
description: 예약시스템 기능 중 예약신청 기능을 제공
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<!DOCTYPE xml>
|
||||
<Configuration>
|
||||
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
@@ -45,4 +46,4 @@
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
</configuration>
|
||||
</Configuration>
|
||||
@@ -1,14 +1,14 @@
|
||||
plugins {
|
||||
id 'org.springframework.boot' version '2.7.0'
|
||||
id "org.sonarqube" version "2.7"
|
||||
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
|
||||
id 'org.springframework.boot' version '2.7.12'
|
||||
id 'org.sonarqube' version '3.5.0.2730'
|
||||
id 'io.spring.dependency-management' version '1.1.0'
|
||||
// querydsl
|
||||
id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'
|
||||
id 'java'
|
||||
}
|
||||
|
||||
group = 'org.egovframe.cloud'
|
||||
version = '0.1'
|
||||
version = '1.0.0'
|
||||
sourceCompatibility = '1.8'
|
||||
|
||||
configurations {
|
||||
@@ -23,14 +23,14 @@ repositories {
|
||||
}
|
||||
|
||||
ext {
|
||||
set('springCloudVersion', "2021.0.3")
|
||||
set('log4j2.version', "2.17.2") // log4j 보안 패치
|
||||
set('springCloudVersion', '2021.0.7')
|
||||
set('log4j2.version', '2.20.0') // log4j 보안 패치
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// implementation files('../../module-common/build/libs/module-common-0.1.jar') // 공통 모듈, @ComponentScan(basePackages={"org.egovframe.cloud"}) 추가해야 적용된다
|
||||
implementation 'org.egovframe.cloud:module-common:0.1'
|
||||
implementation('org.egovframe.rte:org.egovframe.rte.fdl.cmmn:4.1.0') {
|
||||
// implementation files('../module-common/build/libs/module-common-4.2.0-plain.jar') // 공통 모듈, @ComponentScan(basePackages={"org.egovframe.cloud"}) 추가해야 적용된다
|
||||
implementation 'org.egovframe.cloud:module-common:4.2.0'
|
||||
implementation('org.egovframe.rte:org.egovframe.rte.fdl.cmmn:4.2.0') {
|
||||
exclude group: 'org.egovframe.rte', module: 'org.egovframe.rte.fdl.logging'
|
||||
}
|
||||
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
|
||||
@@ -46,26 +46,24 @@ dependencies {
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-bus-amqp' // bus
|
||||
implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'
|
||||
implementation 'org.springframework.cloud:spring-cloud-sleuth-zipkin'
|
||||
implementation 'org.apache.tomcat:tomcat-annotations-api:9.0.73'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-core:9.0.73'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-el:9.0.73'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-websocket:9.0.73'
|
||||
implementation 'net.logstash.logback:logstash-logback-encoder:7.2' // logstash logback
|
||||
implementation 'mysql:mysql-connector-java'
|
||||
implementation 'mysql:mysql-connector-java:8.0.33'
|
||||
implementation 'io.jsonwebtoken:jjwt:0.9.1'
|
||||
|
||||
// querydsl
|
||||
implementation 'com.querydsl:querydsl-jpa:5.0.0'
|
||||
annotationProcessor 'com.querydsl:querydsl-apt:5.0.0'
|
||||
|
||||
// cache
|
||||
implementation 'org.springframework.boot:spring-boot-starter-cache'
|
||||
implementation 'org.ehcache:ehcache'
|
||||
implementation 'javax.cache:cache-api' // expiry를 위해 필요
|
||||
|
||||
implementation 'com.google.api-client:google-api-client:1.35.1'
|
||||
implementation 'com.google.api-client:google-api-client:2.2.0'
|
||||
|
||||
// openapi docs
|
||||
implementation 'org.springdoc:springdoc-openapi-webmvc-core:1.6.9'
|
||||
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
|
||||
implementation 'org.springdoc:springdoc-openapi-webmvc-core:1.7.0'
|
||||
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
|
||||
|
||||
// lombok
|
||||
implementation 'org.projectlombok:lombok'
|
||||
@@ -73,11 +71,12 @@ dependencies {
|
||||
testImplementation 'org.projectlombok:lombok'
|
||||
testAnnotationProcessor 'org.projectlombok:lombok'
|
||||
testImplementation 'com.h2database:h2'
|
||||
testImplementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.8.0'
|
||||
testImplementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.8.1'
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
testImplementation 'org.springframework.security:spring-security-test'
|
||||
|
||||
implementation 'org.javassist:javassist:3.29.0-GA'
|
||||
implementation 'org.webjars:webjars-locator-core:0.53'
|
||||
}
|
||||
|
||||
dependencyManagement {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<!DOCTYPE xml>
|
||||
<Configuration>
|
||||
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
@@ -45,4 +46,4 @@
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
</configuration>
|
||||
</Configuration>
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user