Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2차 MVP 릴리즈 #30

Merged
merged 78 commits into from
Aug 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
13f533b
feat(POLABO-32): 1차 MVP 기능 개발
dldmsql Jun 29, 2024
49737df
Merge pull request #1 from DDD-Community/feature/POLABO-32
dldmsql Jun 29, 2024
b00f11e
chore(POLABO-31): 깃헙 액션 설정
dldmsql Jun 29, 2024
cfa2b55
Merge pull request #2 from DDD-Community/feature/POLABO-31
dldmsql Jun 29, 2024
6a43448
chore(POLABO-31): 깃헙 액션 env 지정
dldmsql Jun 29, 2024
add6170
chore(POLABO-31): 깃헙 액션 env 지정 2차
dldmsql Jun 29, 2024
004ff13
chore(POLABO-31): 깃헙 액션 env 지정 3차
dldmsql Jun 29, 2024
e43e239
chore(POLABO-31): 깃헙 액션 env 지정 4차
dldmsql Jun 29, 2024
0e31cfc
chore(POLABO-31): 깃헙 액션 env 지정 5차
dldmsql Jun 29, 2024
a307ac7
chore(POLABO-31): database명 변경
dldmsql Jun 29, 2024
9c2938d
chore(POLABO-31): heap memory leak 수정
dldmsql Jun 29, 2024
71bab0a
chore(POLABO-31): github actions 6차 수정
dldmsql Jun 29, 2024
bbef805
chore(POLABO-31): github actions 7차 수정
dldmsql Jun 29, 2024
97f7190
chore(POLABO-31): github actions 8차 수정
dldmsql Jun 29, 2024
5d2f7c4
chore(POLABO-31): Dockerfile 변수 주입
dldmsql Jun 29, 2024
9382244
Merge pull request #3 from DDD-Community/feature/POLABO-31
dldmsql Jul 3, 2024
8e79f03
chore(POLABO-31): CD 플로우 작성
dldmsql Jul 9, 2024
956d29f
feat(POLABO-38): 하루 100개 요청 제한 및 디스코드 연동
dldmsql Jul 9, 2024
058a513
feat(POLABO-38): 하루 100개 요청 제한 및 디스코드 연동
dldmsql Jul 9, 2024
2acfbd3
chore(POLABO-39): CD 플로우 2차
dldmsql Jul 9, 2024
0153962
chore(POLABO-39): CD 플로우 3차
dldmsql Jul 9, 2024
b499015
Merge pull request #4 from DDD-Community/POLABO-38
dldmsql Jul 9, 2024
0a50201
fix(POLABO-38): 에러 로그 발송 로직 수정
dldmsql Jul 10, 2024
9a65c4b
Merge remote-tracking branch 'origin/POLABO-38' into POLABO-38
dldmsql Jul 10, 2024
4ca23aa
Merge pull request #5 from DDD-Community/POLABO-38
dldmsql Jul 10, 2024
0d0e0db
fix(POLABO-38): 보드 조회 데이터 매핑 로직 수정 및 폴라로이드 개수 제한
dldmsql Jul 12, 2024
c0b5602
chore(POLABO-39): CD 플로우 4차
dldmsql Jul 12, 2024
84b4352
fix(POLABO-88): 보드 누적 생성 수 타입 변경
dldmsql Jul 14, 2024
a7ede8b
Merge pull request #6 from DDD-Community/feature/POLABO-88
dldmsql Jul 14, 2024
c9b22a5
fix(POLABO-103): 보드 조회 시, 폴라로이드 더미 제거
dldmsql Jul 17, 2024
64a788f
fix(POLABO-104): cors 이슈 대응
dldmsql Jul 17, 2024
1a66428
Merge pull request #7 from DDD-Community/feature/POLABO-103
dldmsql Jul 17, 2024
603784e
fix(POLABO-104): cors 이슈 대응
dldmsql Jul 17, 2024
af5404e
Merge pull request #8 from DDD-Community/feature/POLABO-103
dldmsql Jul 17, 2024
5de07a1
fix(POLABO-104): cors 이슈 대응
dldmsql Jul 17, 2024
358ef3f
Merge pull request #9 from DDD-Community/feature/POLABO-103
dldmsql Jul 17, 2024
c29ab7d
feat(POLABO-108): 오늘 생성 가능한 보드 수 조회
dldmsql Jul 19, 2024
2a925b9
fix(POLABO-107): 폴라로이드 최신순 정렬
dldmsql Jul 19, 2024
5f053da
Merge pull request #10 from DDD-Community/feature/POLABO-108
dldmsql Jul 19, 2024
4c72785
chore(POLABO-107): 개발 서버 배포 테스트
dldmsql Aug 6, 2024
f370540
Merge pull request #11 from DDD-Community/feature/POLABO-108
dldmsql Aug 6, 2024
8829ccd
feat(POLABO-107): mvp 2차 개발
dldmsql Aug 8, 2024
fe4df57
Merge pull request #12 from DDD-Community/feature/POLABO-108
dldmsql Aug 8, 2024
abf5ae7
feat(POLABO-107): mvp 2차 개발
dldmsql Aug 8, 2024
bdcbe10
Merge pull request #13 from DDD-Community/feature/POLABO-108
dldmsql Aug 8, 2024
18605c3
chore(POLABO-108): https swagger 설정
dldmsql Aug 8, 2024
5eac77e
Merge pull request #14 from DDD-Community/feature/POLABO-108
dldmsql Aug 8, 2024
8122d86
chore(POLABO-108): https swagger 설정
dldmsql Aug 9, 2024
5b23171
Merge pull request #15 from DDD-Community/feature/POLABO-108
dldmsql Aug 9, 2024
b23da3b
feat(POLABO-108): mvp 2차 개발
dldmsql Aug 11, 2024
f15c1d1
Merge pull request #16 from DDD-Community/feature/POLABO-108
dldmsql Aug 11, 2024
d28c65c
fix(POLABO-108): mvp 2차 개발 2차 수정
dldmsql Aug 11, 2024
a675244
Merge pull request #17 from DDD-Community/feature/POLABO-108
dldmsql Aug 11, 2024
e054017
fix(POLABO-108): mvp 2차 개발 2차 수정
dldmsql Aug 11, 2024
714ab20
Merge pull request #18 from DDD-Community/feature/POLABO-108
dldmsql Aug 11, 2024
53da3db
fix(POLABO-108): mvp 2차 개발 3차 수정
dldmsql Aug 11, 2024
f97783a
Merge pull request #19 from DDD-Community/feature/POLABO-108
dldmsql Aug 11, 2024
34e194c
fix(POLABO-108): mvp 2차 개발 3차 수정
dldmsql Aug 13, 2024
5b68f99
Merge pull request #20 from DDD-Community/feature/POLABO-108
dldmsql Aug 13, 2024
27d58c4
fix(POLABO-108): mvp 2차 개발 4차 수정
dldmsql Aug 14, 2024
de7cd66
Merge pull request #21 from DDD-Community/feature/POLABO-108
dldmsql Aug 14, 2024
523f273
fix(POLABO-108): mvp 2차 개발 4차 수정
dldmsql Aug 14, 2024
9f53798
Merge pull request #22 from DDD-Community/feature/POLABO-108
dldmsql Aug 14, 2024
acf73d7
fix(POLABO-108): 보드 생성 시, 유저 아이디 바인딩 누락
dldmsql Aug 15, 2024
005b4db
Merge pull request #23 from DDD-Community/feature/POLABO-108
dldmsql Aug 15, 2024
afb84ba
fix(POLABO-108): 페이지네이션 정책 통일화 작업
dldmsql Aug 16, 2024
f17af9c
Merge pull request #24 from DDD-Community/feature/POLABO-108
dldmsql Aug 16, 2024
d4e44d0
fix(POLABO-108): 페이지네이션 정책 통일화 작업
dldmsql Aug 16, 2024
ab442d5
Merge pull request #25 from DDD-Community/feature/POLABO-108
dldmsql Aug 16, 2024
782ea97
fix(POLABO-108): 페이지네이션 정책 통일화 작업 2차
dldmsql Aug 18, 2024
4a27c12
Merge pull request #26 from DDD-Community/feature/POLABO-108
dldmsql Aug 18, 2024
527e2a1
fix(POLABO-108): 페이지네이션 정책 통일화 작업 2차
dldmsql Aug 18, 2024
aad02d5
Merge pull request #27 from DDD-Community/feature/POLABO-108
dldmsql Aug 18, 2024
a192981
chore(POLABO-108): discord 로그 출력 포멧 수정 및 로그 레벨 수정
dldmsql Aug 22, 2024
51c9845
Merge pull request #28 from DDD-Community/feature/POLABO-108
dldmsql Aug 22, 2024
d596d51
fix(POLABO-108): 누적 생성 수 조건절 수정
dldmsql Aug 26, 2024
8eb9af8
fix(POLABO-108): 누적 생성 수 조건절 수정
dldmsql Aug 26, 2024
28211f1
Merge pull request #29 from DDD-Community/feature/POLABO-108
dldmsql Aug 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions .github/workflows/cd-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Java CI with Gradle

on:
push:
branches: [ "dev" ]

jobs:
build:
## checkout후 자바 21 버전으로 설정을 합니다
runs-on: ubuntu-latest
env:
DB_URL: ${{ secrets.DB_URL }}
DB_USER: ${{ secrets.DB_USER }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
JASYPT_ENCRYPTOR_PASSWORD: ${{ secrets.JASYPT_ENCRYPTOR_PASSWORD }}

steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'

- name: Set up Gradle
uses: gradle/gradle-build-action@v2

- name: Increase Gradle memory settings
run: |
echo "org.gradle.jvmargs=-Xmx4g -Dfile.encoding=UTF-8" >> ~/.gradle/gradle.properties
echo "kotlin.daemon.jvmargs=-Xmx4g" >> ~/.gradle/gradle.properties

## gradlew 의 권한을 줍니다.
- name: Grant execute permission for gradlew
run: chmod +x gradlew

## gradle build
- name: Build with Gradle
run: ./gradlew clean build -x test

## 이미지 태그에 시간 설정을 하기위해서 현재 시간을 가져옵니다.
- name: Get current time
uses: 1466587594/get-current-time@v2
id: current-time
with:
format: YYYY-MM-DDTHH-mm-ss
utcOffset: "+09:00"

- name: Show Current Time
run: echo "CurrentTime=${{steps.current-time.outputs.formattedTime}}"
## AWS에 로그인. aws-region은 서울로 설정(ap-northeast-2)
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ap-northeast-2
## ECR에 로그인
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1
## sample라는 ECR 리파지터리에 현재 시간 태그를 생성하고, 푸쉬
## 앞의 스탭에서 ${{steps.current-time.outputs.formattedTime}}로 현재 시간을 가져옵니다.
- name: Build, tag, and push image to Amazon ECR
run: |
docker build --build-arg PASSWORD=$PASSWORD -t polabo:${{steps.current-time.outputs.formattedTime}} .
docker tag polabo:${{steps.current-time.outputs.formattedTime}} ${{ secrets.ECR_REGISTRY }}/polabo:${{steps.current-time.outputs.formattedTime}}
docker push ${{ secrets.ECR_REGISTRY }}/polabo:${{steps.current-time.outputs.formattedTime}}
env:
PASSWORD: ${{ secrets.JASYPT_ENCRYPTOR_PASSWORD }}

- name: Deploy
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST_DEV }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_KEY }}
script: |
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin ${{ steps.login-ecr.outputs.registry }}/${{ secrets.ECR_REPOSITORY }}
docker stop polabo-dev
docker rm polabo-dev
docker pull ${{ secrets.ECR_REGISTRY }}/polabo:${{steps.current-time.outputs.formattedTime}}
docker run -d -v /etc/localtime:/etc/localtime:ro -v /usr/share/zoneinfo/Asia/Seoul:/etc/timezone:ro -e ENVIRONMENT_VALUE=-Dspring.profiles.active=dev --name polabo-dev -p 8080:8080 --restart=always --network host ${{ secrets.ECR_REGISTRY }}/polabo:${{steps.current-time.outputs.formattedTime}}

84 changes: 84 additions & 0 deletions .github/workflows/cd-prod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Java CI with Gradle

on:
push:
branches: [ "main" ]

jobs:
build:
## checkout후 자바 21 버전으로 설정을 합니다
runs-on: ubuntu-latest
env:
DB_URL: ${{ secrets.DB_URL }}
DB_USER: ${{ secrets.DB_USER }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
JASYPT_ENCRYPTOR_PASSWORD: ${{ secrets.JASYPT_ENCRYPTOR_PASSWORD }}

steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'

- name: Set up Gradle
uses: gradle/gradle-build-action@v2

- name: Increase Gradle memory settings
run: |
echo "org.gradle.jvmargs=-Xmx4g -Dfile.encoding=UTF-8" >> ~/.gradle/gradle.properties
echo "kotlin.daemon.jvmargs=-Xmx4g" >> ~/.gradle/gradle.properties

## gradlew 의 권한을 줍니다.
- name: Grant execute permission for gradlew
run: chmod +x gradlew

## gradle build
- name: Build with Gradle
run: ./gradlew clean build -x test

## 이미지 태그에 시간 설정을 하기위해서 현재 시간을 가져옵니다.
- name: Get current time
uses: 1466587594/get-current-time@v2
id: current-time
with:
format: YYYY-MM-DDTHH-mm-ss
utcOffset: "+09:00"

- name: Show Current Time
run: echo "CurrentTime=${{steps.current-time.outputs.formattedTime}}"
## AWS에 로그인. aws-region은 서울로 설정(ap-northeast-2)
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ap-northeast-2
## ECR에 로그인
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1
## sample라는 ECR 리파지터리에 현재 시간 태그를 생성하고, 푸쉬
## 앞의 스탭에서 ${{steps.current-time.outputs.formattedTime}}로 현재 시간을 가져옵니다.
- name: Build, tag, and push image to Amazon ECR
run: |
docker build --build-arg PASSWORD=$PASSWORD -t polabo:${{steps.current-time.outputs.formattedTime}} .
docker tag polabo:${{steps.current-time.outputs.formattedTime}} ${{ secrets.ECR_REGISTRY }}/polabo:${{steps.current-time.outputs.formattedTime}}
docker push ${{ secrets.ECR_REGISTRY }}/polabo:${{steps.current-time.outputs.formattedTime}}
env:
PASSWORD: ${{ secrets.JASYPT_ENCRYPTOR_PASSWORD }}

- name: Deploy
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_KEY }}
script: |
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin ${{ steps.login-ecr.outputs.registry }}/${{ secrets.ECR_REPOSITORY }}
docker stop polabo-dev
docker rm polabo-dev
docker pull ${{ secrets.ECR_REGISTRY }}/polabo:${{steps.current-time.outputs.formattedTime}}
docker run -d -v /etc/localtime:/etc/localtime:ro -v /usr/share/zoneinfo/Asia/Seoul:/etc/timezone:ro -e ENVIRONMENT_VALUE=-Dspring.profiles.active=dev --name polabo-dev -p 8080:8080 --restart=always --network host ${{ secrets.ECR_REGISTRY }}/polabo:${{steps.current-time.outputs.formattedTime}}

11 changes: 11 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM openjdk:21

ARG JAR_FILE=build/libs/*SNAPSHOT.jar
ARG PASSWORD

COPY ${JAR_FILE} polabo.jar

ENV JASYPT_ENCRYPTOR_PASSWORD=${PASSWORD}

#ENTRYPOINT ["sh", "-c", "java -jar /polabo.jar -Djasypt.encryptor.password=${JASYPT_ENCRYPTOR_PASSWORD}"]
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} ${ENVIRONMENT_VALUE} -jar /polabo.jar", "-Djasypt.encryptor.password=${JASYPT_ENCRYPTOR_PASSWORD}"]
81 changes: 69 additions & 12 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,31 +1,70 @@
import org.jetbrains.kotlin.gradle.idea.proto.com.google.protobuf.GeneratedCodeInfoKt.annotation
import nu.studer.gradle.jooq.JooqEdition
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
val kotlinVersion = "1.9.24"
id("org.springframework.boot") version "3.3.1"
id("io.spring.dependency-management") version "1.1.5"
kotlin("jvm") version kotlinVersion
kotlin("plugin.spring") version kotlinVersion
kotlin("plugin.jpa") version kotlinVersion
kotlin("plugin.allopen") version kotlinVersion
// kotlin("plugin.jpa") version kotlinVersion
// kotlin("plugin.allopen") version kotlinVersion
kotlin("kapt") version kotlinVersion
id("nu.studer.jooq") version "9.0"
}

group = "com.ddd"
version = "0.0.1-SNAPSHOT"

java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
languageVersion.set(JavaLanguageVersion.of(21))
}
}

allOpen {
annotation("jakarta.persistence.Entity")
annotation("jakarta.persistence.MappedSuperclass")
annotation("jakarta.persistence.Embeddable")
jooq {
version.set("3.18.10")
edition.set(JooqEdition.OSS)

configurations {
create("main") {
generateSchemaSourceOnCompilation.set(true)
jooqConfiguration.apply {
logging = org.jooq.meta.jaxb.Logging.WARN
jdbc.apply {
driver = "com.mysql.cj.jdbc.Driver"
url = System.getenv("DB_URL") ?: "jdbc:mysql://localhost:3306/polabo"
user = System.getenv("DB_USER") ?: "polabo"
password = System.getenv("DB_PASSWORD") ?: "polabo"
}
generator.apply {
name = "org.jooq.codegen.KotlinGenerator"
database.apply {
name = "org.jooq.meta.mysql.MySQLDatabase"
excludes = "sys"
}
generate.apply {
isDeprecated = false
isFluentSetters = true
isRecords = true
}
target.apply {
packageName = "com.ddd.sonnypolabobe.jooq"
directory = "build/generated-src/jooq/main"
}
strategy.name = "org.jooq.codegen.DefaultGeneratorStrategy"
}
}
}
}
}

//allOpen {
// annotation("jakarta.persistence.Entity")
// annotation("jakarta.persistence.MappedSuperclass")
// annotation("jakarta.persistence.Embeddable")
//}

repositories {
mavenCentral()
}
Expand All @@ -34,17 +73,35 @@ dependencies {
implementation("org.springframework.boot:spring-boot-starter")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0")
// runtimeOnly("org.mariadb.jdbc:mariadb-java-client")
// implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-webflux")
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("org.jetbrains.kotlin:kotlin-reflect")
runtimeOnly("com.mysql:mysql-connector-j")
implementation("org.springframework.boot:spring-boot-starter-jooq")
jooqGenerator("com.mysql:mysql-connector-j")
jooqGenerator("org.jooq:jooq-meta:3.18.10")
jooqGenerator("org.jooq:jooq-codegen:3.18.10")
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
implementation ("com.github.f4b6a3:uuid-creator:5.3.3")
implementation("software.amazon.awssdk:s3:2.20.68")
implementation("com.amazonaws:aws-java-sdk-s3:1.12.561")
implementation("com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.5")
implementation("org.springframework.boot:spring-boot-starter-security")
implementation("io.netty:netty-resolver-dns-native-macos:4.1.68.Final:osx-aarch_64")

implementation("io.jsonwebtoken:jjwt-api:0.11.2")
runtimeOnly("io.jsonwebtoken:jjwt-impl:0.11.2")
runtimeOnly("io.jsonwebtoken:jjwt-jackson:0.11.2")
}

kotlin {
compilerOptions {
freeCompilerArgs.addAll("-Xjsr305=strict")
tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs += "-Xjsr305=strict"
jvmTarget = "21"
kotlinDaemonJvmArguments = listOf("-Xmx4096m", "-Xms2560m", "-XX:+UseParallelGC")
}
}

Expand Down
26 changes: 26 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
version: '3.7'

services:
mysql:
image: mysql:latest
container_name: polabo_mysql
hostname: polabo_mysql
volumes:
- ./mysqldata:/var/lib/mysql
environment:
- MYSQL_USER=polabo
- MYSQL_PASSWORD=polabo
- MYSQL_ROOT_PASSWORD=polabo
- MYSQL_HOST=localhost
- MYSQL_PORT=3306
- MYSQL_DATABASE=polabo
ports:
- "3306:3306"


# redis:
# image: redis
# container_name: polabo_redis
# hostname: polabo_redis
# ports:
# - "6379:6379"
2 changes: 2 additions & 0 deletions gradle/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Increase the maximum heap size for the Kotlin daemon
kotlin.daemon.jvmargs=-Xmx4g
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
zipStorePath=wrapper/dists
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package com.ddd.sonnypolabobe

import org.slf4j.LoggerFactory
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.scheduling.annotation.EnableScheduling

@EnableScheduling
@SpringBootApplication
class SonnyPolaboBeApplication

inline fun <reified T> T.logger() = LoggerFactory.getLogger(T::class.java)!!
fun main(args: Array<String>) {
runApplication<SonnyPolaboBeApplication>(*args)
}
Loading
Loading