介紹一個適合深入學(xué)習(xí)并實(shí)戰(zhàn)的SpringBoot項目

網(wǎng)上關(guān)于SpringBoot的學(xué)習(xí)資料很多,但是真正能對SpringBoot底層原理進(jìn)行學(xué)習(xí)并且可以實(shí)戰(zhàn)的資料真的很難找!!!今天就為大家推薦一款GitHub上很多fork很多star的SpringBoot項目,項目名稱為spring-boot-demo。
項目簡介
spring-boot-demo是一個用來深入學(xué)習(xí)并實(shí)戰(zhàn)SpringBoot的項目,目前總共包含66個集成demo,已經(jīng)完成54個,每個集成demo都有完整的代碼和模塊簡介,并且作者還在不斷更新中。
該項目已經(jīng)成功集成的demo:
actuator(
監(jiān)控)admin(
可視化監(jiān)控)logback(
日志)aopLog(
通過AOP記錄web請求日志)統(tǒng)一異常處理(
json級別和頁面級別)freemarker(
模板引擎)thymeleaf(
模板引擎)Beetl(
模板引擎)Enjoy(
模板引擎)JdbcTemplate(
通用JDBC操作數(shù)據(jù)庫)JPA(
強(qiáng)大的ORM框架)mybatis(
強(qiáng)大的ORM框架)通用Mapper(
快速操作Mybatis)PageHelper(
通用的Mybatis分頁插件)mybatis-plus(
快速操作Mybatis)BeetlSQL(
強(qiáng)大的ORM框架)upload(
本地文件上傳和七牛云文件上傳)redis(
緩存)ehcache(
緩存)email(
發(fā)送各種類型郵件)task(
基礎(chǔ)定時任務(wù))quartz(
動態(tài)管理定時任務(wù))xxl-job(
分布式定時任務(wù))swagger(
API接口管理測試)security(
基于RBAC的動態(tài)權(quán)限認(rèn)證)SpringSession(
Session共享)Zookeeper(
結(jié)合AOP實(shí)現(xiàn)分布式鎖)RabbitMQ(
消息隊列)Kafka(
消息隊列)websocket(
服務(wù)端推送監(jiān)控服務(wù)器運(yùn)行信息)socket.io(
聊天室)ureport2(
中國式報表)打包成
war文件集成 ElasticSearch(
基本操作和高級查詢)Async(
異步任務(wù))集成Dubbo(
采用官方的starter)MongoDB(
文檔數(shù)據(jù)庫)neo4j(
圖數(shù)據(jù)庫)docker(
容器化)JPA多數(shù)據(jù)源
Mybatis多數(shù)據(jù)源
代碼生成器
GrayLog(
日志收集)JustAuth(
第三方登錄)LDAP(
增刪改查)動態(tài)添加/切換數(shù)據(jù)源
單機(jī)限流(
AOP + Guava RateLimiter)分布式限流(
AOP + Redis + Lua)ElasticSearch 7.x(
使用官方 Rest High Level Client)HTTPS
Flyway(
數(shù)據(jù)庫初始化)
開發(fā)環(huán)境
JDK 1.8 +
Maven 3.5 +
IntelliJ IDEA ULTIMATE 2018.2 + (注意:務(wù)必使用 IDEA 開發(fā),同時保證安裝
lombok插件)Mysql 5.7 + (盡量保證使用 5.7 版本以上,因為 5.7 版本加了一些新特性,同時不向下兼容。本 demo 里會盡量避免這種不兼容的地方,但還是建議盡量保證 5.7 版本以上)
各模塊介紹
| Module 名稱 | Module 介紹 |
|---|---|
| spring-boot-demo-helloworld | spring-boot 的一個 helloworld |
| spring-boot-demo-properties | spring-boot 讀取配置文件中的內(nèi)容 |
| spring-boot-demo-actuator | spring-boot 集成 spring-boot-starter-actuator 用于監(jiān)控 spring-boot 的啟動和運(yùn)行狀態(tài) |
| spring-boot-demo-admin-client | spring-boot 集成 spring-boot-admin 來可視化的監(jiān)控 spring-boot 程序的運(yùn)行狀態(tài),可以與 actuator 互相搭配使用,客戶端示例 |
| spring-boot-demo-admin-server | spring-boot 集成 spring-boot-admin 來可視化的監(jiān)控 spring-boot 程序的運(yùn)行狀態(tài),可以與 actuator 互相搭配使用,服務(wù)端示例 |
| spring-boot-demo-logback | spring-boot 集成 logback 日志 |
| spring-boot-demo-log-aop | spring-boot 使用 AOP 切面的方式記錄 web 請求日志 |
| spring-boot-demo-exception-handler | spring-boot 統(tǒng)一異常處理,包括2種,第一種返回統(tǒng)一的 json 格式,第二種統(tǒng)一跳轉(zhuǎn)到異常頁面 |
| spring-boot-demo-template-freemarker | spring-boot 集成 Freemarker 模板引擎 |
| spring-boot-demo-template-thymeleaf | spring-boot 集成 Thymeleaf 模板引擎 |
| spring-boot-demo-template-beetl | spring-boot 集成 Beetl 模板引擎 |
| spring-boot-demo-template-enjoy | spring-boot 集成 Enjoy 模板引擎 |
| spring-boot-demo-orm-jdbctemplate | spring-boot 集成 Jdbc Template 操作數(shù)據(jù)庫,并簡易封裝通用 Dao 層 |
| spring-boot-demo-orm-jpa | spring-boot 集成 spring-boot-starter-data-jpa 操作數(shù)據(jù)庫 |
| spring-boot-demo-orm-mybatis | spring-boot 集成原生mybatis,使用 mybatis-spring-boot-starter 集成 |
| spring-boot-demo-orm-mybatis-mapper-page | spring-boot 集成通用Mapper和PageHelper,使用 mapper-spring-boot-starter 和 pagehelper-spring-boot-starter 集成 |
| spring-boot-demo-orm-mybatis-plus | spring-boot 集成 mybatis-plus,使用 mybatis-plus-boot-starter 集成,集成 BaseMapper、BaseService、ActiveRecord 操作數(shù)據(jù)庫 |
| spring-boot-demo-orm-beetlsql | spring-boot 集成 beetl-sql,使用 beetl-framework-starter 集成 |
| spring-boot-demo-upload | spring-boot 文件上傳示例,包含本地文件上傳以及七牛云文件上傳 |
| spring-boot-demo-cache-redis | spring-boot 整合 redis,操作redis中的數(shù)據(jù),并使用redis緩存數(shù)據(jù) |
| spring-boot-demo-cache-ehcache | spring-boot 整合 ehcache,使用 ehcache 緩存數(shù)據(jù) |
| spring-boot-demo-email | spring-boot 整合 email,包括發(fā)送簡單文本郵件、HTML郵件(包括模板HTML郵件)、附件郵件、靜態(tài)資源郵件 |
| spring-boot-demo-task | spring-boot 快速實(shí)現(xiàn)定時任務(wù) |
| spring-boot-demo-task-quartz | spring-boot 整合 quartz,并實(shí)現(xiàn)對定時任務(wù)的管理,包括新增定時任務(wù),刪除定時任務(wù),暫停定時任務(wù),恢復(fù)定時任務(wù),修改定時任務(wù)啟動時間,以及定時任務(wù)列表查詢,提供前端頁面 |
| spring-boot-demo-task-xxl-job | spring-boot 整合xxl-job,并提供繞過 xxl-job-admin 對定時任務(wù)的管理的方法,包括定時任務(wù)列表,觸發(fā)器列表,新增定時任務(wù),刪除定時任務(wù),停止定時任務(wù),啟動定時任務(wù),修改定時任務(wù),手動觸發(fā)定時任務(wù) |
| spring-boot-demo-swagger | spring-boot 集成原生的 swagger 用于統(tǒng)一管理、測試 API 接口 |
| spring-boot-demo-swagger-beauty | spring-boot 集成第三方 swagger swagger-bootstrap-ui 美化API文檔樣式,用于統(tǒng)一管理、測試 API 接口 |
| spring-boot-demo-rbac-security | spring-boot 集成 spring security 完成基于RBAC權(quán)限模型的權(quán)限管理,支持自定義過濾請求,動態(tài)權(quán)限認(rèn)證,使用 JWT 安全認(rèn)證,支持在線人數(shù)統(tǒng)計,手動踢出用戶等操作 |
| spring-boot-demo-rbac-shiro | spring-boot 集成 shiro 實(shí)現(xiàn)權(quán)限管理 待完成 |
| spring-boot-demo-session | spring-boot 集成 Spring Session 實(shí)現(xiàn)Session共享、重啟程序Session不失效 |
| spring-boot-demo-oauth | spring-boot 實(shí)現(xiàn) oauth 服務(wù)器功能,實(shí)現(xiàn)授權(quán)碼機(jī)制 待完成 |
| spring-boot-demo-social | spring-boot 集成第三方登錄,集成 justauth-spring-boot-starter 實(shí)現(xiàn)QQ登錄、GitHub登錄、微信登錄、谷歌登錄、微軟登錄、小米登錄、企業(yè)微信登錄。 |
| spring-boot-demo-zookeeper | spring-boot 集成 Zookeeper 結(jié)合AOP實(shí)現(xiàn)分布式鎖 |
| spring-boot-demo-mq-rabbitmq | spring-boot 集成 RabbitMQ 實(shí)現(xiàn)基于直接隊列模式、分列模式、主題模式、延遲隊列的消息發(fā)送和接收 |
| spring-boot-demo-mq-rocketmq | spring-boot 集成 RocketMQ,實(shí)現(xiàn)消息的發(fā)送和接收 待完成 |
| spring-boot-demo-mq-kafka | spring-boot 集成 kafka,實(shí)現(xiàn)消息的發(fā)送和接收 |
| spring-boot-demo-websocket | spring-boot 集成 websocket,后端主動推送前端服務(wù)器運(yùn)行信息 |
| spring-boot-demo-websocket-socketio | spring-boot 使用 netty-socketio 集成 websocket,實(shí)現(xiàn)一個簡單的聊天室 |
| spring-boot-demo-ureport2 | spring-boot 集成 ureport2 實(shí)現(xiàn)復(fù)雜的自定義的中國式報表 待完成 |
| spring-boot-demo-uflo | spring-boot 集成 uflo 快速實(shí)現(xiàn)輕量級流程引擎 待完成 |
| spring-boot-demo-urule | spring-boot 集成 urule 快速實(shí)現(xiàn)規(guī)則引擎 待完成 |
| spring-boot-demo-activiti | spring-boot 集成 activiti 7 ?流程引擎 待完成 |
| spring-boot-demo-async | spring-boot 使用原生提供的異步任務(wù)支持,實(shí)現(xiàn)異步執(zhí)行任務(wù) |
| spring-boot-demo-war | spring-boot 打成 war 包的配置 |
| spring-boot-demo-elasticsearch | spring-boot 集成 ElasticSearch,集成 spring-boot-starter-data-elasticsearch 完成對 ElasticSearch 的高級使用技巧,包括創(chuàng)建索引、配置映射、刪除索引、增刪改查基本操作、復(fù)雜查詢、高級查詢、聚合查詢等 |
| spring-boot-demo-dubbo | spring-boot 集成 Dubbo,分別為公共模塊 spring-boot-demo-dubbo-common、服務(wù)提供方spring-boot-demo-dubbo-provider、服務(wù)調(diào)用方spring-boot-demo-dubbo-consumer |
| spring-boot-demo-mongodb | spring-boot 集成 MongoDB,使用官方的 starter 實(shí)現(xiàn)增刪改查 |
| spring-boot-demo-neo4j | spring-boot 集成 Neo4j 圖數(shù)據(jù)庫,實(shí)現(xiàn)一個校園人物關(guān)系網(wǎng)的demo |
| spring-boot-demo-docker | spring-boot 容器化 |
| spring-boot-demo-multi-datasource-jpa | spring-boot 使用JPA集成多數(shù)據(jù)源 |
| spring-boot-demo-multi-datasource-mybatis | spring-boot 使用Mybatis集成多數(shù)據(jù)源,使用 Mybatis-Plus 提供的開源解決方案實(shí)現(xiàn) |
| spring-boot-demo-sharding-jdbc | spring-boot 使用 sharding-jdbc 實(shí)現(xiàn)分庫分表,同時ORM采用 Mybatis-Plus |
| spring-boot-demo-tio | spring-boot 集成 tio 網(wǎng)絡(luò)編程框架 待完成 |
| spring-boot-demo-grpc | spring-boot 集成grpc,配置tls/ssl,參見ISSUE#5 待完成 |
| spring-boot-demo-codegen | spring-boot 集成 velocity 模板技術(shù)實(shí)現(xiàn)的代碼生成器,簡化開發(fā) |
| spring-boot-demo-graylog | spring-boot 集成 graylog 實(shí)現(xiàn)日志統(tǒng)一收集 |
| spring-boot-demo-sso | spring-boot 集成 SSO 單點(diǎn)登錄,參見 ISSUE#12 待完成 |
| spring-boot-demo-ldap | spring-boot 集成 LDAP,集成 spring-boot-starter-data-ldap 完成對 Ldap 的基本 CURD操作, 并給出以登錄為實(shí)戰(zhàn)的 API 示例,參見 ISSUE#23,感謝 @fxbin |
| spring-boot-demo-dynamic-datasource | spring-boot 動態(tài)添加數(shù)據(jù)源、動態(tài)切換數(shù)據(jù)源 |
| spring-boot-demo-ratelimit-guava | spring-boot 使用 Guava RateLimiter 實(shí)現(xiàn)單機(jī)版限流,保護(hù) API |
| spring-boot-demo-ratelimit-redis | spring-boot 使用 Redis + Lua 腳本實(shí)現(xiàn)分布式限流,保護(hù) API |
| spring-boot-demo-https | spring-boot 集成 HTTPS |
| spring-boot-demo-elasticsearch-rest-high-level-client | spring boot 集成 ElasticSearch 7.x 版本,使用官方 Rest High Level Client 操作 ES 數(shù)據(jù) |
| spring-boot-demo-flyway | spring boot 集成 Flyway,項目啟動時初始化數(shù)據(jù)庫表結(jié)構(gòu),同時支持?jǐn)?shù)據(jù)庫腳本版本控制 |
特別方便的是每個demo都有詳細(xì)的知識點(diǎn)介紹和完整的代碼可以學(xué)習(xí),例如spring-boot 集成 graylog 用來實(shí)現(xiàn)日志統(tǒng)一收集的spring-boot-demo-graylog模塊,除了基本的環(huán)境準(zhǔn)備、pom文件、application配置文件等的詳細(xì)介紹之外,還有demo如何運(yùn)行、運(yùn)行成功的配圖教學(xué),簡直是手把手教你學(xué)SpringBoot。

最后,這么好用的SpringBoot項目,貼上GitHub地址:
https://github.com/xkcoding/spring-boot-demo
關(guān)注GitHub今日熱榜,專注挖掘好用的開發(fā)工具,致力于分享優(yōu)質(zhì)高效的工具、資源、插件等,助力開發(fā)者成長!
點(diǎn)個在看 你最好看

