{"adoption": {"forks": 7040, "observed_at": "2026-08-28T04:11:16.724351+00:00", "stars": 16558}, "canonical_url": "https://ross.abutalabs.com/products/springboot-learning-example", "card": {"archived": false, "artifact_type": "learning-resource", "description": "spring boot 实践学习案例，是 spring boot 初学者及核心技术巩固的最佳实践。", "domain": ["web-development", "backend", "developer-tools", "tutorials", "databases"], "enriched": true, "function": ["developer-tools", "web-framework", "caching", "search-engine", "logging", "monitoring", "orm", "database"], "health_score": 20, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["JeffLi1993/springboot-learning-example"], "name": "JeffLi1993/springboot-learning-example", "platform": ["jvm", "cross-platform"], "pushed_at": "2023-12-03T12:33:47+00:00", "repo": "JeffLi1993/springboot-learning-example", "stars": 16558, "tags": ["spring-boot", "spring-webflux", "mybatis", "jpa", "redis", "elasticsearch", "dubbo", "thymeleaf", "tutorial-examples", "java"], "topics": ["springboot", "redis", "jpa", "elasticsearch", "dubbo", "mybatis", "webflux"], "urls": [], "use_cases": ["learn spring boot from scratch with runnable examples", "see how to integrate redis caching in spring boot", "example of spring boot with mybatis and jpa", "learn spring webflux crud and thymeleaf integration", "configure multiple datasources with druid in spring boot", "spring boot logging configuration examples with logback and log4j", "practice restful api development and error handling in spring boot"], "what_it_is": "A collection of Spring Boot practice learning examples in Java, accompanying a series of Chinese blog tutorials covering Spring Boot 2.x fundamentals, WebFlux, data access, caching, and logging. It serves as a best-practice reference for beginners and for consolidating core Spring Boot skills.", "when_to_avoid": ["you need a production-ready starter template or scaffold for a new project", "you need actively maintained, up-to-date dependency versions", "you are not using the Java/JVM Spring ecosystem"], "when_to_choose": ["you are a beginner learning Spring Boot through hands-on examples", "you want reference code for integrating Redis, MyBatis, JPA, or Elasticsearch with Spring Boot", "you follow the author's blog tutorial series and want the matching source code"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/springboot-learning-example", "repo": "JeffLi1993/springboot-learning-example", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.724351+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:04:52.257743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5787a5e39381531dbe46641c8e83ee85c509ceb2bdc4f5c7a8bd027f4a12d8", "fetched_at": "2026-08-28T04:11:16.724351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JeffLi1993/springboot-learning-example"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.724351+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:04:52.257743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5787a5e39381531dbe46641c8e83ee85c509ceb2bdc4f5c7a8bd027f4a12d8", "fetched_at": "2026-08-28T04:11:16.724351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JeffLi1993/springboot-learning-example"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:04:52.257743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5787a5e39381531dbe46641c8e83ee85c509ceb2bdc4f5c7a8bd027f4a12d8", "fetched_at": "2026-08-28T04:11:16.724351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JeffLi1993/springboot-learning-example"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.724351+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.724351+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.724351+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:04:52.257743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5787a5e39381531dbe46641c8e83ee85c509ceb2bdc4f5c7a8bd027f4a12d8", "fetched_at": "2026-08-28T04:11:16.724351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JeffLi1993/springboot-learning-example"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.724351+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.724351+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:04:52.257743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5787a5e39381531dbe46641c8e83ee85c509ceb2bdc4f5c7a8bd027f4a12d8", "fetched_at": "2026-08-28T04:11:16.724351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JeffLi1993/springboot-learning-example"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.724351+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.724351+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.724351+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:04:52.257743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5787a5e39381531dbe46641c8e83ee85c509ceb2bdc4f5c7a8bd027f4a12d8", "fetched_at": "2026-08-28T04:11:16.724351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JeffLi1993/springboot-learning-example"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.724351+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.724351+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:04:52.257743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5787a5e39381531dbe46641c8e83ee85c509ceb2bdc4f5c7a8bd027f4a12d8", "fetched_at": "2026-08-28T04:11:16.724351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JeffLi1993/springboot-learning-example"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:04:52.257743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5787a5e39381531dbe46641c8e83ee85c509ceb2bdc4f5c7a8bd027f4a12d8", "fetched_at": "2026-08-28T04:11:16.724351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JeffLi1993/springboot-learning-example"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:04:52.257743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5787a5e39381531dbe46641c8e83ee85c509ceb2bdc4f5c7a8bd027f4a12d8", "fetched_at": "2026-08-28T04:11:16.724351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JeffLi1993/springboot-learning-example"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:04:52.257743+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5787a5e39381531dbe46641c8e83ee85c509ceb2bdc4f5c7a8bd027f4a12d8", "fetched_at": "2026-08-28T04:11:16.724351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JeffLi1993/springboot-learning-example"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3495, "days_push": 1004, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}