{"id":13458793,"url":"https://github.com/dunwu/spring-tutorial","last_synced_at":"2025-05-16T07:07:45.857Z","repository":{"id":38052305,"uuid":"64465730","full_name":"dunwu/spring-tutorial","owner":"dunwu","description":":book: Spring 教程","archived":false,"fork":false,"pushed_at":"2024-04-23T23:38:26.000Z","size":21317,"stargazers_count":837,"open_issues_count":19,"forks_count":366,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-04-08T17:17:16.268Z","etag":null,"topics":["spring","spring-boot"],"latest_commit_sha":null,"homepage":"https://dunwu.github.io/spring-tutorial/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dunwu.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"publiccode":null,"codemeta":null}},"created_at":"2016-07-29T08:48:34.000Z","updated_at":"2025-04-07T00:16:05.000Z","dependencies_parsed_at":"2024-01-13T17:50:05.016Z","dependency_job_id":"e553aca4-d471-4e55-91f3-ce4520b45578","html_url":"https://github.com/dunwu/spring-tutorial","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunwu%2Fspring-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunwu%2Fspring-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunwu%2Fspring-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunwu%2Fspring-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dunwu","download_url":"https://codeload.github.com/dunwu/spring-tutorial/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254485065,"owners_count":22078767,"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","spring-boot"],"created_at":"2024-07-31T09:00:57.417Z","updated_at":"2025-05-16T07:07:40.849Z","avatar_url":"https://github.com/dunwu.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://dunwu.github.io/spring-framework/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/dunwu/images/master/common/dunwu-logo-200.png\" alt=\"logo\" width=\"150px\"/\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://creativecommons.org/licenses/by-sa/4.0/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n        \u003cimg src=\"https://badgen.net/github/license/dunwu/spring-tutorial\"\u003e\n    \u003c/a\u003e\n    \u003cimg alt=\"Spring Boot Version\" src=\"https://img.shields.io/badge/spring-5.0.2.RELEASE-blue\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/maven-v3.6.0-blue\" alt=\"maven\"\u003e\n    \u003cimg alt=\"Build\" src=\"https://api.travis-ci.com/dunwu/spring-tutorial.svg?branch=master\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eSpring Tutorial\u003c/h1\u003e\n\n\u003e 🍃 **`spring-tutorial`** 是一个 Spring \u0026 Spring Boot 教程。\n\u003e\n\u003e - 🔁 项目同步维护：[Github](https://github.com/dunwu/spring-tutorial/) | [Gitee](https://gitee.com/turnon/spring-tutorial/)\n\u003e - 📖 电子书阅读：[Github Pages](https://dunwu.github.io/spring-tutorial/) | [Gitee Pages](http://turnon.gitee.io/spring-tutorial/)\n\n## 📖 内容\n\n### 综合\n\n- [Spring 概述](docs/01.Java/13.框架/01.Spring/00.Spring综合/01.Spring概述.md)\n- [SpringBoot 知识图谱](docs/01.Java/13.框架/01.Spring/00.Spring综合/21.SpringBoot知识图谱.md)\n- [SpringBoot 基本原理](docs/01.Java/13.框架/01.Spring/00.Spring综合/22.SpringBoot基本原理.md)\n- [Spring 面试](docs/01.Java/13.框架/01.Spring/00.Spring综合/99.Spring面试.md)\n\n### 核心\n\n- [Spring Bean](docs/01.Java/13.框架/01.Spring/01.Spring核心/01.SpringBean.md)\n- [Spring IoC](docs/01.Java/13.框架/01.Spring/01.Spring核心/02.SpringIoC.md)\n- [Spring 依赖查找](docs/01.Java/13.框架/01.Spring/01.Spring核心/03.Spring依赖查找.md)\n- [Spring 依赖注入](docs/01.Java/13.框架/01.Spring/01.Spring核心/04.Spring依赖注入.md)\n- [Spring IoC 依赖来源](docs/01.Java/13.框架/01.Spring/01.Spring核心/05.SpringIoC依赖来源.md)\n- [Spring Bean 作用域](docs/01.Java/13.框架/01.Spring/01.Spring核心/06.SpringBean作用域.md)\n- [Spring Bean 生命周期](docs/01.Java/13.框架/01.Spring/01.Spring核心/07.SpringBean生命周期.md)\n- [Spring 配置元数据](docs/01.Java/13.框架/01.Spring/01.Spring核心/08.Spring配置元数据.md)\n- [Spring AOP](docs/01.Java/13.框架/01.Spring/01.Spring核心/10.SpringAop.md)\n- [Spring 资源管理](docs/01.Java/13.框架/01.Spring/01.Spring核心/20.Spring资源管理.md)\n- [Spring 校验](docs/01.Java/13.框架/01.Spring/01.Spring核心/21.Spring校验.md)\n- [Spring 数据绑定](docs/01.Java/13.框架/01.Spring/01.Spring核心/22.Spring数据绑定.md)\n- [Spring 类型转换](docs/01.Java/13.框架/01.Spring/01.Spring核心/23.Spring类型转换.md)\n- [Spring EL 表达式](docs/01.Java/13.框架/01.Spring/01.Spring核心/24.SpringEL.md)\n- [Spring 事件](docs/01.Java/13.框架/01.Spring/01.Spring核心/25.Spring事件.md)\n- [Spring 国际化](docs/01.Java/13.框架/01.Spring/01.Spring核心/26.Spring国际化.md)\n- [Spring 泛型处理](docs/01.Java/13.框架/01.Spring/01.Spring核心/27.Spring泛型处理.md)\n- [Spring 注解](docs/01.Java/13.框架/01.Spring/01.Spring核心/28.Spring注解.md)\n- [Spring Environment 抽象](docs/01.Java/13.框架/01.Spring/01.Spring核心/29.SpringEnvironment抽象.md)\n- [SpringBoot 教程之快速入门](docs/01.Java/13.框架/01.Spring/01.Spring核心/31.SpringBoot之快速入门.md)\n- [SpringBoot 之属性加载](docs/01.Java/13.框架/01.Spring/01.Spring核心/32.SpringBoot之属性加载.md)\n- [SpringBoot 之 Profile](docs/01.Java/13.框架/01.Spring/01.Spring核心/33.SpringBoot之Profile.md)\n\n### 数据\n\n- [Spring 之数据源](docs/01.Java/13.框架/01.Spring/02.Spring数据/01.Spring之数据源.md)\n- [Spring 之 JDBC](docs/01.Java/13.框架/01.Spring/02.Spring数据/02.Spring之JDBC.md)\n- [Spring 之事务](docs/01.Java/13.框架/01.Spring/02.Spring数据/03.Spring之事务.md)\n- [Spring 之 JPA](docs/01.Java/13.框架/01.Spring/02.Spring数据/04.Spring之JPA.md)\n- [Spring 集成 Mybatis](docs/01.Java/13.框架/01.Spring/02.Spring数据/10.Spring集成Mybatis.md)\n- [Spring 访问 Redis](docs/01.Java/13.框架/01.Spring/02.Spring数据/21.Spring访问Redis.md)\n- [Spring 访问 MongoDB](docs/01.Java/13.框架/01.Spring/02.Spring数据/22.Spring访问MongoDB.md)\n- [Spring 访问 Elasticsearch](docs/01.Java/13.框架/01.Spring/02.Spring数据/23.Spring访问Elasticsearch.md)\n\n### Web\n\n- [SpringWeb 综述](docs/01.Java/13.框架/01.Spring/03.SpringWeb/01.SpringWeb综述.md)\n- [SpringWeb 应用](docs/01.Java/13.框架/01.Spring/03.SpringWeb/02.SpringWeb应用.md)\n- [DispatcherServlet](docs/01.Java/13.框架/01.Spring/03.SpringWeb/03.DispatcherServlet.md)\n- [Spring 过滤器](docs/01.Java/13.框架/01.Spring/03.SpringWeb/04.Spring过滤器.md)\n- [Spring 跨域](docs/01.Java/13.框架/01.Spring/03.SpringWeb/05.Spring跨域.md)\n- [Spring 视图](docs/01.Java/13.框架/01.Spring/03.SpringWeb/06.Spring视图.md)\n- [SpringBoot 之应用 EasyUI](docs/01.Java/13.框架/01.Spring/03.SpringWeb/21.SpringBoot之应用EasyUI.md)\n\n### IO\n\n- [SpringBoot 之异步请求](docs/01.Java/13.框架/01.Spring/04.SpringIO/01.SpringBoot之异步请求.md)\n- [SpringBoot 之 Json](docs/01.Java/13.框架/01.Spring/04.SpringIO/02.SpringBoot之Json.md)\n- [SpringBoot 之邮件](docs/01.Java/13.框架/01.Spring/04.SpringIO/03.SpringBoot之邮件.md)\n\n### 集成\n\n- [Spring 集成缓存中间件](docs/01.Java/13.框架/01.Spring/05.Spring集成/01.Spring集成缓存.md)\n- [Spring 集成定时任务中间件](docs/01.Java/13.框架/01.Spring/05.Spring集成/02.Spring集成调度器.md)\n- [Spring 集成 Dubbo](docs/01.Java/13.框架/01.Spring/05.Spring集成/03.Spring集成Dubbo.md)\n\n### 其他\n\n- [Spring4 升级](docs/01.Java/13.框架/01.Spring/99.Spring其他/01.Spring4升级.md)\n- [SpringBoot 之 banner](docs/01.Java/13.框架/01.Spring/99.Spring其他/21.SpringBoot之banner.md)\n- [SpringBoot 之 Actuator](docs/01.Java/13.框架/01.Spring/99.Spring其他/22.SpringBoot之Actuator.md)\n\n## 💻 示例\n\n### 核心篇示例\n\n- [spring-core-actuator](https://github.com/dunwu/spring-tutorial/tree/master/codes/core/actuator) - Spring 应用监控示例。\n- [spring-core-aop](https://github.com/dunwu/spring-tutorial/tree/master/codes/core/aop) - Spring AOP 编程示例。\n- [spring-core-async](https://github.com/dunwu/spring-tutorial/tree/master/codes/core/async) - Spring 使用异步接口示例。\n- [spring-core-banner](https://github.com/dunwu/spring-tutorial/tree/master/codes/core/banner) - Spring 定制启动时的输出 Logo。\n- [spring-core-bean](https://github.com/dunwu/spring-tutorial/tree/master/codes/core/bean) - Spring 管理 JavaBean 生命周期示例。\n- [spring-core-conversion](https://github.com/dunwu/spring-tutorial/tree/master/codes/core/conversion) - Spring 数据转换示例。\n- [spring-core-data-binding](https://github.com/dunwu/spring-tutorial/tree/master/codes/core/data-binding) - Spring 数据绑定示例。\n- [spring-core-ioc](https://github.com/dunwu/spring-tutorial/tree/master/codes/core/ioc) - Spring IOC 示例。\n- [spring-core-profile](https://github.com/dunwu/spring-tutorial/tree/master/codes/core/profile) - 在 Spring 中根据 profile 在不同的环境下执行不同的行为。\n- [spring-core-property](https://github.com/dunwu/spring-tutorial/tree/master/codes/core/property) - 全方位的演示 Spring 加载属性的方式：记载 `properties` 和 `yaml` 两种文件；通过 `@Value`、`@ConfigurationProperties`、`Environment` 读取属性。\n- [spring-core-resource](https://github.com/dunwu/spring-tutorial/tree/master/codes/core/resource) - Spring 资源加载示例。\n- [spring-core-validation](https://github.com/dunwu/spring-tutorial/tree/master/codes/core/validation) - Spring 数据校验示例。\n\n### 数据篇示例\n\n- **JDBC**\n  - [spring-data-jdbc-basics](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/jdbc/basics) - Spring Boot 以 JDBC 方式访问关系型数据库，通过 `JdbcTemplate` 执行基本的 CRUD 操作。\n  - [spring-data-jdbc-druid](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/jdbc/druid) - SpringBoot 使用 [Druid](https://github.com/alibaba/druid) 作为数据库连接池。\n  - [spring-data-jdbc-multi-datasource](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/jdbc/multi-datasource) - SpringBoot 连接多数据源示例。\n  - [spring-data-jdbc-xml](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/jdbc/xml) - Spring 以 JDBC 方式访问关系型数据库，通过 `JdbcTemplate` 执行基本的 CRUD 操作。\n- **ORM**\n  - [spring-data-orm-jpa](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/orm/jpa) - SpringBoot 使用 JPA 作为 ORM 框架访问数据库示例。\n  - [spring-data-orm-mybatis](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/orm/mybatis) - Spring 使用 [MyBatis](https://github.com/mybatis/mybatis-3) 作为 ORM 框架访问数据库示例。\n  - [spring-data-orm-mybatis-mapper](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/orm/mybatis-mapper) - SpringBoot 使用 [MyBatis](https://github.com/mybatis/mybatis-3) + [Mapper](https://github.com/abel533/Mapper) + [PageHelper](https://github.com/pagehelper/Mybatis-PageHelper) 作为 ORM 框架访问数据库示例。\n  - [spring-data-orm-mybatis-multi-datasource](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/orm/mybatis-multi-datasource) - SpringBoot 连接多数据源，并使用 [MyBatis Plus](https://github.com/baomidou/mybatis-plus) 作为 ORM 框架访问数据库示例。\n  - [spring-data-orm-mybatis-plus](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/orm/mybatis-plus) - SpringBoot 使用 [MyBatis Plus](https://github.com/baomidou/mybatis-plus) 作为 ORM 框架访问数据库示例。\n- **Nosql**\n  - [spring-data-nosql-basics](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/nosql/basics) - Spring 访问各种 NoSQL 的示例。\n  - [spring-data-nosql-mongodb](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/nosql/mongodb) - SpringBoot 访问 [MongoDB](https://www.mongodb.com/) 的示例。\n  - [spring-data-nosql-redis](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/nosql/redis) - SpringBoot 访问 [Redis](https://redis.io/) 单节点、集群的示例。\n  - [spring-data-nosql-elasticsearch](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/nosql/elasticsearch) - SpringBoot 访问 [Elasticsearch](https://www.elastic.co/guide/index.html) 的示例。\n  - [spring-data-nosql-hdfs](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/nosql/hdfs) - SpringBoot 访问 HDFS 的示例。\n- **Cache**\n  - [spring-data-cache-basics](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/cache/basics) - SpringBoot 默认缓存框架的示例。\n  - [spring-data-cache-j2cache](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/cache/j2cache) - SpringBoot 使用 [j2cache](https://gitee.com/ld/J2Cache) 作为缓存框架的示例。\n  - [spring-data-cache-jetcache](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/cache/jetcache) - SpringBoot 使用 [jetcache](https://github.com/alibaba/jetcache) 作为缓存框架的示例。\n- **中间件**\n  - [spring-data-middleware-flyway](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/middleware/flyway) - Spring 使用版本管理中间件 Flyway 示例。\n  - [spring-data-middleware-sharding](https://github.com/dunwu/spring-tutorial/tree/master/codes/data/middleware/sharding) - Spring 使用分库分表中间件示例。\n\n## 📚 资料\n\n- **官方**\n  - [Spring 官网](https://spring.io/)\n  - [Spring Github](https://github.com/spring-projects/spring-framework)\n  - [Spring Framework 官方文档](https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/index.html)\n  - [Spring Boot 官方文档](https://docs.spring.io/spring-boot/docs/current/reference/html/data.html)\n- **书籍**\n  - [《 Spring 实战（第 5 版）》](https://book.douban.com/subject/34949443/)\n- **教程**\n  - [《小马哥讲 Spring 核心编程思想》](https://time.geekbang.org/course/intro/265)\n  - [geekbang-lessons](https://github.com/geektime-geekbang/geekbang-lessons)\n  - [跟我学 Spring3](http://jinnianshilongnian.iteye.com/blog/1482071)\n\n## 🚪 传送\n\n◾ 💧 [钝悟的 IT 知识图谱](https://dunwu.github.io/waterdrop/) ◾ 🎯 [钝悟的博客](https://dunwu.github.io/blog/) ◾\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdunwu%2Fspring-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdunwu%2Fspring-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdunwu%2Fspring-tutorial/lists"}