egovframe-msa-edu 4.2.0

This commit is contained in:
egovframesupport
2024-02-29 09:31:07 +09:00
parent da5caa40fc
commit bf1b7cf1fe
39 changed files with 867 additions and 163 deletions

View File

@@ -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 'io.jsonwebtoken:jjwt:0.9.1'
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'

View File

@@ -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:

View File

@@ -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>

View File

@@ -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,13 +44,9 @@ 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 'io.jsonwebtoken:jjwt:0.9.1'
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'
annotationProcessor 'com.querydsl:querydsl-apt: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 {

View File

@@ -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: 게시판관리, 게시물관리, 첨부파일관리 기능을 제공

View File

@@ -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>

View File

@@ -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'
}

View 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

View 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

View 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

View 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

View 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 서버에 최상위 디렉토리 자동 생성 및 구현체를 결정하게 된다.

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View File

@@ -10,8 +10,9 @@ spring:
config:
server:
native:
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
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}
port: 5672

View File

@@ -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>

View File

@@ -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'
}

View File

@@ -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,14 +46,11 @@ 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 'io.jsonwebtoken:jjwt:0.9.1'
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
implementation 'org.springframework.cloud:spring-cloud-stream'
@@ -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 {

View File

@@ -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>

View File

@@ -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,24 +40,23 @@ 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 'io.jsonwebtoken:jjwt:0.9.1'
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 {

View File

@@ -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 포함하기 위해

View File

@@ -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: 예약시스템 기능 중 예약확인, 예약승인/취소 기능을 제공

View File

@@ -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>

View File

@@ -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 '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}"
}
}

View File

@@ -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: 예약시스템 기능 중 예약지역, 예약물품 관리 기능을 제공

View File

@@ -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>

View File

@@ -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 '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 {

View File

@@ -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: 예약시스템 기능 중 예약신청 기능을 제공

View File

@@ -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>

View File

@@ -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 'io.jsonwebtoken:jjwt:0.9.1'
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 {

View File

@@ -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>