{"id":13471302,"url":"https://github.com/code4craft/tiny-spring","last_synced_at":"2025-10-19T03:23:53.590Z","repository":{"id":13121559,"uuid":"15803421","full_name":"code4craft/tiny-spring","owner":"code4craft","description":"A tiny IoC container refer to Spring.","archived":false,"fork":false,"pushed_at":"2023-11-27T06:31:02.000Z","size":638,"stargazers_count":4073,"open_issues_count":30,"forks_count":1819,"subscribers_count":203,"default_branch":"master","last_synced_at":"2025-04-12T02:55:57.962Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/code4craft.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2014-01-10T16:37:57.000Z","updated_at":"2025-04-10T07:11:55.000Z","dependencies_parsed_at":"2024-03-03T06:42:00.220Z","dependency_job_id":null,"html_url":"https://github.com/code4craft/tiny-spring","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code4craft%2Ftiny-spring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code4craft%2Ftiny-spring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code4craft%2Ftiny-spring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code4craft%2Ftiny-spring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/code4craft","download_url":"https://codeload.github.com/code4craft/tiny-spring/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254169179,"owners_count":22026209,"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":[],"created_at":"2024-07-31T16:00:42.829Z","updated_at":"2025-10-19T03:23:53.540Z","avatar_url":"https://github.com/code4craft.png","language":"Java","readme":"tiny-spring\n=======\n\n\u003eA tiny IoC container refer to Spring.\n\n## 关于\n\n`tiny-spring`是为了学习Spring的而开发的，可以认为是一个Spring的精简版。Spring的代码很多，层次复杂，阅读起来费劲。我尝试从使用功能的角度出发，参考Spring的实现，一步一步构建，最终完成一个精简版的Spring。有人把程序员与画家做比较，画家有门基本功叫临摹，tiny-spring可以算是一个程序的临摹版本-从自己的需求出发，进行程序设计，同时对著名项目进行参考。\n\n[点此查看](https://www.zybuluo.com/dugu9sword/note/382745)对本项目的类文件结构和逻辑的分析。 (by @dugu9sword)\n\n## 功能\n\n1. 支持singleton类型的bean，包括初始化、属性注入、以及依赖bean注入。\n2. 可从xml中读取配置。\n3. 可以使用Aspectj的方式进行AOP编写，支持接口和类代理。\n\n## 使用\n\n`tiny-spring`是逐步进行构建的，里程碑版本我都使用了git tag来管理。例如，最开始的tag是`step-1-container-register-and-get`，那么可以使用\n\n\tgit checkout step-1-container-register-and-get\n\n来获得这一版本。版本历史见[`changelog.md`](https://github.com/code4craft/tiny-spring/blob/master/changelog.md)。\n\n[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/code4craft/tiny-spring/trend.png)](https://bitdeli.com/free \"Bitdeli Badge\")\n\n## 下面是推广\n\n如果觉得代码理解有难度的，可以报名@方老司 的视频教程：\n\n[60分钟徒手撸出Spring框架:土法造炮篇](https://segmentfault.com/l/1500000013061317?d=be83d672744f2f15b77bb40795505e4b)\n\n[60分钟徒手撸出Spring框架:高仿版](https://segmentfault.com/l/1500000013110630?d=a09ac8198372f552dc68c572b2b38664)\n","funding_links":[],"categories":["Java","IoC"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode4craft%2Ftiny-spring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcode4craft%2Ftiny-spring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode4craft%2Ftiny-spring/lists"}