{"adoption": {"forks": 8095, "observed_at": "2026-08-28T04:11:52.936771+00:00", "stars": 28945}, "canonical_url": "https://ross.abutalabs.com/products/springall", "card": {"archived": false, "artifact_type": "learning-resource", "description": "循序渐进，学习Spring Boot、Spring Boot & Shiro、Spring Batch、Spring Cloud、Spring Cloud Alibaba、Spring Security & Spring Security OAuth2，博客Spring系列源码：https://mrbird.cc", "domain": ["web-development", "backend", "tutorials", "developer-tools"], "enriched": true, "function": ["web-framework", "auth", "developer-tools", "testing", "caching", "logging", "documentation"], "health_score": 20, "homepage": null, "language": "Java", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["wuyouzhuguli/SpringAll"], "name": "wuyouzhuguli/SpringAll", "platform": ["jvm", "cross-platform"], "pushed_at": "2024-05-31T14:56:35+00:00", "repo": "wuyouzhuguli/SpringAll", "stars": 28945, "tags": ["spring-boot", "spring-cloud", "spring-security", "shiro", "spring-batch", "tutorial-code", "example-projects", "chinese-language", "java-ecosystem"], "topics": ["spring-boot", "springboot", "learning", "shiro", "spring-boot-learning", "spring-security", "spring-cloud"], "urls": [], "use_cases": ["learn spring boot step by step with runnable examples", "find example code for integrating spring security oauth2", "see how to use mybatis and redis with spring boot", "learn spring cloud and spring cloud alibaba basics", "reference sample code for spring batch jobs", "understand spring boot autoconfiguration through examples"], "what_it_is": "A curated collection of example source code accompanying a Chinese-language blog tutorial series on the Spring ecosystem, covering Spring Boot, Spring Cloud, Spring Security/OAuth2, Shiro, and Spring Batch. Each topic is a small runnable project demonstrating a specific integration or technique.", "when_to_avoid": ["you need a production-ready starter template or scaffold", "you need up-to-date examples for the latest Spring Boot 3.x releases", "you cannot read Chinese, since the tutorials and comments are primarily in Chinese"], "when_to_choose": ["you are learning the Spring ecosystem and want progressive, topic-by-topic example projects", "you prefer Chinese-language tutorials with matching source code", "you need copy-paste reference implementations for common Spring integrations"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/springall", "repo": "wuyouzhuguli/SpringAll", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:52.936771+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:53:16.713542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bf42f083cfe710ac7a071386fbcdd59d1709657209f6f04a4dbee42f37add7d", "fetched_at": "2026-08-28T04:11:52.936771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wuyouzhuguli/SpringAll"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:52.936771+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:53:16.713542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bf42f083cfe710ac7a071386fbcdd59d1709657209f6f04a4dbee42f37add7d", "fetched_at": "2026-08-28T04:11:52.936771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wuyouzhuguli/SpringAll"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:53:16.713542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bf42f083cfe710ac7a071386fbcdd59d1709657209f6f04a4dbee42f37add7d", "fetched_at": "2026-08-28T04:11:52.936771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wuyouzhuguli/SpringAll"}], "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:52.936771+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:52.936771+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:52.936771+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:53:16.713542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bf42f083cfe710ac7a071386fbcdd59d1709657209f6f04a4dbee42f37add7d", "fetched_at": "2026-08-28T04:11:52.936771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wuyouzhuguli/SpringAll"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:52.936771+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:52.936771+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:53:16.713542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bf42f083cfe710ac7a071386fbcdd59d1709657209f6f04a4dbee42f37add7d", "fetched_at": "2026-08-28T04:11:52.936771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wuyouzhuguli/SpringAll"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:52.936771+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:52.936771+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:52.936771+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:53:16.713542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bf42f083cfe710ac7a071386fbcdd59d1709657209f6f04a4dbee42f37add7d", "fetched_at": "2026-08-28T04:11:52.936771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wuyouzhuguli/SpringAll"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:52.936771+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:52.936771+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:53:16.713542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bf42f083cfe710ac7a071386fbcdd59d1709657209f6f04a4dbee42f37add7d", "fetched_at": "2026-08-28T04:11:52.936771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wuyouzhuguli/SpringAll"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:53:16.713542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bf42f083cfe710ac7a071386fbcdd59d1709657209f6f04a4dbee42f37add7d", "fetched_at": "2026-08-28T04:11:52.936771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wuyouzhuguli/SpringAll"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:53:16.713542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bf42f083cfe710ac7a071386fbcdd59d1709657209f6f04a4dbee42f37add7d", "fetched_at": "2026-08-28T04:11:52.936771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wuyouzhuguli/SpringAll"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:53:16.713542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bf42f083cfe710ac7a071386fbcdd59d1709657209f6f04a4dbee42f37add7d", "fetched_at": "2026-08-28T04:11:52.936771+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wuyouzhuguli/SpringAll"}], "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": 3045, "days_push": 824, "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}}