{"repo":"Odysseymoon/spring-webflux-template","free":true,"listed":false,"github":"https://github.com/Odysseymoon/spring-webflux-template","clone":"git clone https://github.com/Odysseymoon/spring-webflux-template.git","description":"Spring WebFlux REST template","language":"Kotlin","stars":46,"topics":["spring-boot","webflux","template"],"license":null,"category":"deployment-docker-iac","readme_excerpt":"Spring WebFlux REST Template (Kotlin/Gradle) --- Spring WebFlux 기반 REST API 템플릿입니다. Kotlin + Gradle(Kotlin DSL) 기준으로 구성되어 있습니다. Framework 및 개발환경 - Java 17+ - Kotlin 1.9.x - Spring Boot 3.3.x - Spring WebFlux - Spring Data JPA & QueryDSL (Jakarta) - Spring Cache with Valkey - Spring Security with JWT - SpringDoc OpenAPI (Swagger UI) - Jasypt (암복호화) - Gradle (Kotlin DSL) - MySQL 8.x & Valkey 7.2.x with Docker --- 프로젝트 구조 --- 빌드 & 테스트 --- 기본 Configuration src/main/resources/application.yaml 에서 로컬/운영 프로파일을 구성합니다. 테스트 프로파일은 src/test/resources/application.yaml 에서 H2와 simple cache를 사용합니다. --- Annotated Controllers vs Functional Endpoints Spring WebFlux는 Annotation 기반 컨트롤러와 Functional Endpoints를 모두 지원합니다. 이 템플릿은 Validation, OpenAPI 문서화 등을 고려해 Annotated Controller 방식을 사용합니다. --- WebFlux 기본 설정 src/main/kotlin/moon/odyssey/webflux/config/WebFluxConfig.kt --- 암복호화 (Jasypt) build.gradle.kts src/main/kotlin/moon/odyssey/webflux/config/EncryptConfig.kt src/main/kotlin/moon/odyssey/webflux/utils/converter/StringEncryptConverter.kt 를 통해 JPA 필드에 자동 암복호화를 적용할 수 있습니다. (필요 시 엔티티에 @Convert 추가) --- Scheduling & Async - 설정 prefix: async.thread-pool. , schedule.thread-pool.size - 구성 클래스: AsyncConfig , SchedulingConfig , AsyncProperties , SchedulingProperties --- i18n & 에러 메시지 처리 - Locale: src/main/kotlin/moon/odyssey/webflux/config/support/LocaleResolver.kt - Advice: src/main/kotlin/moon/odyssey/webflux/application/advice/GlobalAdvice.kt - 메시지: src/main/resources/i18n/messages .properties --- Cache w","default_branch":null,"files":null,"tree":[],"storefront":"/r/Odysseymoon","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Odysseymoon/spring-webflux-template/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}