{"id":23778440,"url":"https://github.com/lucasdengcn/spring-native-image-starter","last_synced_at":"2026-04-08T21:30:18.758Z","repository":{"id":254818236,"uuid":"845349197","full_name":"lucasdengcn/spring-native-image-starter","owner":"lucasdengcn","description":"Practices on Spring Native Image and Spring boot, for adopting GraalVM on cloud native","archived":false,"fork":false,"pushed_at":"2024-11-19T06:37:44.000Z","size":77,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-01T09:10:47.870Z","etag":null,"topics":["spring-boot-3","spring-native"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lucasdengcn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-21T04:39:37.000Z","updated_at":"2024-11-29T00:34:18.000Z","dependencies_parsed_at":"2024-08-26T11:02:09.968Z","dependency_job_id":"7fd01ea2-5481-481c-a620-8b6b24367345","html_url":"https://github.com/lucasdengcn/spring-native-image-starter","commit_stats":null,"previous_names":["lucasdengcn/spring-native-image-demo","lucasdengcn/spring-native-image-starter"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasdengcn%2Fspring-native-image-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasdengcn%2Fspring-native-image-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasdengcn%2Fspring-native-image-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasdengcn%2Fspring-native-image-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lucasdengcn","download_url":"https://codeload.github.com/lucasdengcn/spring-native-image-starter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239972861,"owners_count":19727441,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["spring-boot-3","spring-native"],"created_at":"2025-01-01T09:10:52.963Z","updated_at":"2026-04-08T21:30:18.699Z","avatar_url":"https://github.com/lucasdengcn.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spring Native Image Demo\n\n## Tech Stack\n\n- JDK 21\n- Graalvm-jdk-21.0.5+9.1\n- Kotlin 1.9.x\n- Spring Boot 3.3.x\n- Spring Cloud 2023.0.3\n- Resilience4j\n- Hibernate\n- Spring Data JPA\n- MapStruct\n- Undertow\n- OpenFeign\n- CloudEvents\n- Open API Specification\n- PostgreSQL\n- JUnit 5\n- DataFaker\n- Kafka\n- Redis\n- Gradle\n- Kapt\n- Gradle Native Build tools\n- RFC-9457 \n\n## Capabilities to Verify\n\n| Component      | Able To Run? |\n|----------------|--------------|\n| JPA            | Yes          |\n| Controllers    | Yes          |\n| Flyway         | No           |\n| OpenFeign      | Yes          |\n| Redis Client   | Yes          |\n| Kafka Client   | Yes          |\n| Resilience4j   | Yes          |\n| Map Struct     | Yes          |\n| Swagger UI     | Yes          |\n| Validation     | Yes          |\n| Cacheable      | Yes          |\n| Kafka Listener | Yes          |\n\n\n## OTEL\n\nhttps://opentelemetry.io/blog/2023/spring-native/\nhttps://github.com/open-telemetry/opentelemetry-java-examples/tree/main/spring-native\n\n## Toolchain\n\nhttps://graalvm.github.io/native-build-tools/latest/gradle-plugin.html\n\n## Map Struct\n\ngiven kotlin data class will generate few constructs, \ndo not set default value for data class, otherwise MapStruct will not assign value to properties.\n\n## Cache\n\nhttps://spring.io/guides/gs/caching\n\n## OpenFeign\n\nhttps://docs.spring.io/spring-cloud-openfeign/reference/spring-cloud-openfeign.html#spring-cloud-feign\n\n## Resilience4j\n\n\n\n## Build Env\n\n```shell\nexport JAVA_HOME=\"/Library/Java/JavaVirtualMachines/graalvm-jdk-21.0.5+9.1/Contents/Home\"\nexport GRAALVM_HOME=$JAVA_HOME\nexport PATH=$GRAALVM_HOME/bin:$PATH\n```\n\n### Build and Run the Demo\n\n```shell\n\ngradle clean nativeCompile\n\n# BUILD SUCCESSFUL in 5m 18s\n# 11 actionable tasks: 11 executed\n\n```\n\n#### Runtime info\n\nPackage size: ~250M\n\nDuration: Started DemoApplicationKt in 1.121 seconds (process running for 1.132)\n\n#### Running the Native Image\n\n```shell\n./build/native/nativeCompile/spring-native-image-demo\n```\n\n#### Run Native directly\n\n```shell\ngradle clean nativeRun\n```\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasdengcn%2Fspring-native-image-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucasdengcn%2Fspring-native-image-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasdengcn%2Fspring-native-image-starter/lists"}