{"id":14982998,"url":"https://github.com/gexiangdong/tutorial","last_synced_at":"2025-10-26T18:17:27.687Z","repository":{"id":30691626,"uuid":"125733165","full_name":"gexiangdong/tutorial","owner":"gexiangdong","description":"Spring Boot的例子，包含RESTful API, MVC, JMS, Cache, Mybatis, Cache, Websocket...","archived":false,"fork":false,"pushed_at":"2024-02-21T00:10:17.000Z","size":6509,"stargazers_count":229,"open_issues_count":1,"forks_count":141,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-30T05:08:31.228Z","etag":null,"topics":["jms","junit","mockit","mybatis","rest","restful","spring-boot","spring-cache","spring-mvc","spring-security","transactional","websocket"],"latest_commit_sha":null,"homepage":"http://study.163.com/course/courseMain.htm?courseId=1005213034","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gexiangdong.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":"2018-03-18T14:27:04.000Z","updated_at":"2025-03-25T00:34:58.000Z","dependencies_parsed_at":"2024-09-29T06:16:13.138Z","dependency_job_id":null,"html_url":"https://github.com/gexiangdong/tutorial","commit_stats":{"total_commits":191,"total_committers":4,"mean_commits":47.75,"dds":0.5183246073298429,"last_synced_commit":"fcd3d677b23bbad31d6b3a905b5bbb88c69ab5fb"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gexiangdong%2Ftutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gexiangdong%2Ftutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gexiangdong%2Ftutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gexiangdong%2Ftutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gexiangdong","download_url":"https://codeload.github.com/gexiangdong/tutorial/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247441062,"owners_count":20939239,"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":["jms","junit","mockit","mybatis","rest","restful","spring-boot","spring-cache","spring-mvc","spring-security","transactional","websocket"],"created_at":"2024-09-24T14:06:33.496Z","updated_at":"2025-10-26T18:17:22.652Z","avatar_url":"https://github.com/gexiangdong.png","language":"Java","readme":"# Spring Boot教程\n\nspring boot编写RESTful API项目中用到的各种知识的整理和相关示例，主要通过代码和代码的注视来展现说明用法和注意事项。\n\n可以配合网易云免费课程 http://study.163.com/course/courseMain.htm?courseId=1005213034 一起。\n\n****\n\n章节 | 说明 |\n|:------------ |:--------------- |\n|[seciont-00](./section-00) | 最简单的可运行的RESTful API例子  |\n|[seciont-01](./section-01) | RestController的例子，展示了编写RestController中的各种用法  |\n|[seciont-02](./section-02) | Spring boot + Mybatis查询存储数据的例子【不区分DTO、PO等，DTO穿透所有层】  |\n|[seciont-03](./section-03) | Spring boot + JPA实现数据存取的例子，并且示例了用Zoker处理DTO、PO之间的转换 |\n|[seciont-04](./section-04) | 使用Spring boot tester 和 Junit 及mockit进行单元测试 |\n|[seciont-05](./section-05) | 测试用例展现@Transactional注解的几个参数的用途和含义 |\n|[seciont-06](./section-06) | Mybatis进阶，演示查询结果到复杂类型的转换；演示了TypeHandler及自定义JsonTypeHandler的用途 |\n|[seciont-07](./section-07) | 使用Spring Security保护RESTful API |\n|[seciont-08](./section-08) | 使用Spring Async、Spring Scheduling、Spring Cache的例子 |\n|[seciont-09](./section-09) | 用Spring编写websocket的例子（使用了STOMP) |\n|[seciont-10](./section-10) | 在Spring中使用JMS(ActiveMQ)收发消息的例子 |\n|[seciont-11](./section-11-mvc) | SpringMVC的例子 |\n|[seciont-12](./section-12-mvc-security) | SpringMVC + Spring Security，定制登录页面和自定义用户机制的例子 |\n|[seciont-13](./section-13-kafka) |使用kafka作为消息服务器，收发消息的例子 |\n|[seciont-14](./section-14-dynamic-datasource) |多个动态数据源的例子(不常见） |\n|[seciont-15](./section-15-dynamic-sql) |Mybatis自定义Language Driver的例子和在Controller生成excel格式文件的例子） |\n|[seciont-16](./section-16-email) |使用Spring提供的JavaMailSender发送邮件的例子 |\n|[section-17](./section-17-bpm-activiti) |activiti工作流引擎 + spring boot |\n|[section-18](./section-18-web-flow) |用Web Flow实现下单支付流程的小例子 |\n|[section-19](./section-19-restdocs) |用 RestDocs 写API文档 |\n|[section-20](./section-20-two-datasours) |多个DataSource，同时使用2个数据库 |\n\n### 环境\n\n需要先安装Maven，大部分章节需要PostgreSQL，安装后创建数据库和表[sql.sql](./sql.sql)\n\n\n[![996.icu](https://img.shields.io/badge/link-996.icu-red.svg)](https://996.icu)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgexiangdong%2Ftutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgexiangdong%2Ftutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgexiangdong%2Ftutorial/lists"}