├── .gitignore ├── README.md ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle.kts └── src ├── main ├── kotlin │ └── kr │ │ └── dataportal │ │ └── distributedlock │ │ ├── DistributedLockApplication.kt │ │ ├── configuration │ │ └── ApplicationConfiguration.kt │ │ ├── domain │ │ ├── Domain.kt │ │ └── article │ │ │ ├── entity │ │ │ └── Article.kt │ │ │ ├── repository │ │ │ └── ArticleRepository.kt │ │ │ └── service │ │ │ └── ArticleCommand.kt │ │ ├── infrastructure │ │ ├── lock │ │ │ ├── DistributedLock.kt │ │ │ ├── DistributedLockAspect.kt │ │ │ ├── DistributedLockException.kt │ │ │ ├── DistributedSynchronizer.kt │ │ │ └── RedisDistributedSynchronizer.kt │ │ └── redis │ │ │ ├── LettuceRedisService.kt │ │ │ └── RedisService.kt │ │ └── utils │ │ ├── jsonx.kt │ │ └── objectx.kt └── resources │ └── application.yml └── test └── kotlin └── kr └── dataportal └── distributedlock └── infrastructure └── DistributedLockAspectTest.kt /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/README.md -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/gradlew.bat -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "kotlin-springboot-distributed-lock" 2 | -------------------------------------------------------------------------------- /src/main/kotlin/kr/dataportal/distributedlock/DistributedLockApplication.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/src/main/kotlin/kr/dataportal/distributedlock/DistributedLockApplication.kt -------------------------------------------------------------------------------- /src/main/kotlin/kr/dataportal/distributedlock/configuration/ApplicationConfiguration.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/src/main/kotlin/kr/dataportal/distributedlock/configuration/ApplicationConfiguration.kt -------------------------------------------------------------------------------- /src/main/kotlin/kr/dataportal/distributedlock/domain/Domain.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/src/main/kotlin/kr/dataportal/distributedlock/domain/Domain.kt -------------------------------------------------------------------------------- /src/main/kotlin/kr/dataportal/distributedlock/domain/article/entity/Article.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/src/main/kotlin/kr/dataportal/distributedlock/domain/article/entity/Article.kt -------------------------------------------------------------------------------- /src/main/kotlin/kr/dataportal/distributedlock/domain/article/repository/ArticleRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/src/main/kotlin/kr/dataportal/distributedlock/domain/article/repository/ArticleRepository.kt -------------------------------------------------------------------------------- /src/main/kotlin/kr/dataportal/distributedlock/domain/article/service/ArticleCommand.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/src/main/kotlin/kr/dataportal/distributedlock/domain/article/service/ArticleCommand.kt -------------------------------------------------------------------------------- /src/main/kotlin/kr/dataportal/distributedlock/infrastructure/lock/DistributedLock.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/src/main/kotlin/kr/dataportal/distributedlock/infrastructure/lock/DistributedLock.kt -------------------------------------------------------------------------------- /src/main/kotlin/kr/dataportal/distributedlock/infrastructure/lock/DistributedLockAspect.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/src/main/kotlin/kr/dataportal/distributedlock/infrastructure/lock/DistributedLockAspect.kt -------------------------------------------------------------------------------- /src/main/kotlin/kr/dataportal/distributedlock/infrastructure/lock/DistributedLockException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/src/main/kotlin/kr/dataportal/distributedlock/infrastructure/lock/DistributedLockException.kt -------------------------------------------------------------------------------- /src/main/kotlin/kr/dataportal/distributedlock/infrastructure/lock/DistributedSynchronizer.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/src/main/kotlin/kr/dataportal/distributedlock/infrastructure/lock/DistributedSynchronizer.kt -------------------------------------------------------------------------------- /src/main/kotlin/kr/dataportal/distributedlock/infrastructure/lock/RedisDistributedSynchronizer.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/src/main/kotlin/kr/dataportal/distributedlock/infrastructure/lock/RedisDistributedSynchronizer.kt -------------------------------------------------------------------------------- /src/main/kotlin/kr/dataportal/distributedlock/infrastructure/redis/LettuceRedisService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/src/main/kotlin/kr/dataportal/distributedlock/infrastructure/redis/LettuceRedisService.kt -------------------------------------------------------------------------------- /src/main/kotlin/kr/dataportal/distributedlock/infrastructure/redis/RedisService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/src/main/kotlin/kr/dataportal/distributedlock/infrastructure/redis/RedisService.kt -------------------------------------------------------------------------------- /src/main/kotlin/kr/dataportal/distributedlock/utils/jsonx.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/src/main/kotlin/kr/dataportal/distributedlock/utils/jsonx.kt -------------------------------------------------------------------------------- /src/main/kotlin/kr/dataportal/distributedlock/utils/objectx.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/src/main/kotlin/kr/dataportal/distributedlock/utils/objectx.kt -------------------------------------------------------------------------------- /src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/src/main/resources/application.yml -------------------------------------------------------------------------------- /src/test/kotlin/kr/dataportal/distributedlock/infrastructure/DistributedLockAspectTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heli-os/kotlin-springboot-distributed-lock/HEAD/src/test/kotlin/kr/dataportal/distributedlock/infrastructure/DistributedLockAspectTest.kt --------------------------------------------------------------------------------