介绍一个适合深入学习并实战的SpringBoot项目

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> 介绍一个适合深入学习并实战的SpringBoot项目

项目简介

spring-boot-demo是一个用来深入学习并实战SpringBoot的项目,目前总共包含66个集成demo,已经完成54个,每个集成demo都有完整的代码和模块简介,并且作者还在不断更新中。

该项目已经成功集成的demo:

  • actuator(`监控`)
  • admin(`可视化监控`)
  • logback(`日志`)
  • aopLog(`通过AOP记录web请求日志`)
  • 统一异常处理(`json级别和页面级别`)
  • freemarker(`模板引擎`)
  • thymeleaf(`模板引擎`)
  • Beetl(`模板引擎`)
  • Enjoy(`模板引擎`)
  • JdbcTemplate(`通用JDBC操作数据库`)
  • JPA(`强大的ORM框架`)
  • mybatis(`强大的ORM框架`)
  • 通用Mapper(`快速操作Mybatis`)
  • PageHelper(`通用的Mybatis分页插件`)
  • mybatis-plus(`快速操作Mybatis`)
  • BeetlSQL(`强大的ORM框架`)
  • upload(`本地文件上传和七牛云文件上传`)
  • redis(`缓存`)
  • ehcache(`缓存`)
  • email(`发送各种类型邮件`)
  • task(`基础定时任务`)
  • quartz(`动态管理定时任务`)
  • xxl-job(`分布式定时任务`)
  • swagger(`API接口管理测试`)
  • security(`基于RBAC的动态权限认证`)
  • SpringSession(`Session共享`)
  • Zookeeper(`结合AOP实现分布式锁`)
  • RabbitMQ(`消息队列`)
  • Kafka(`消息队列`)
  • websocket(`服务端推送监控服务器运行信息`)
  • socket.io(`聊天室`)
  • ureport2(`中国式报表`)
  • 打包成`war`文件
  • 集成 ElasticSearch(`基本操作和高级查询`)
  • Async(`异步任务`)
  • 集成Dubbo(`采用官方的starter`)
  • MongoDB(`文档数据库`)
  • neo4j(`图数据库`)
  • docker(`容器化`)
  • **JPA多数据源**
  • **Mybatis多数据源**
  • **代码生成器**
  • **GrayLog**(`日志收集`)
  • **JustAuth**(`第三方登录`)
  • **LDAP**(`增删改查`)
  • **动态添加/切换数据源**
  • **单机限流**(`AOP + Guava RateLimiter`)
  • **分布式限流**(`AOP + Redis + Lua`)
  • **ElasticSearch 7.x**(`使用官方 Rest High Level Client`)
  • **HTTPS**
  • **Flyway**(`数据库初始化`)
  • admin( 可视化监控)

    aopLog( 通过AOP记录web请求日志)

    freemarker( 模板引擎)

    Beetl( 模板引擎)

    JdbcTemplate( 通用JDBC操作数据库)

    mybatis( 强大的ORM框架)

    PageHelper( 通用的Mybatis分页插件)

    BeetlSQL( 强大的ORM框架)

    redis( 缓存)

    email( 发送各种类型邮件)

    quartz( 动态管理定时任务)

    swagger( API接口管理测试)

    SpringSession( Session共享)

    RabbitMQ( 消息队列)

    websocket( 服务端推送监控服务器运行信息)

    ureport2( 中国式报表)

    集成 ElasticSearch( 基本操作和高级查询)

    集成Dubbo( 采用官方的starter)

    neo4j( 图数据库)

    JPA多数据源

    代码生成器

    JustAuth( 第三方登录)

    动态添加/切换数据源

    分布式限流( AOP + Redis + Lua)

    HTTPS

    开发环境

  • **JDK 1.8 +**
  • **Maven 3.5 +**
  • **IntelliJ IDEA ULTIMATE 2018.2 +** (注意:务必使用 IDEA 开发,同时保证安装 `lombok` 插件)
  • **Mysql 5.7 +** (尽量保证使用 5.7 版本以上,因为 5.7 版本加了一些新特性,同时不向下兼容。本 demo 里会尽量避免这种不兼容的地方,但还是建议尽量保证 5.7 版本以上)
  • Maven 3.5 +

    Mysql 5.7 + (尽量保证使用 5.7 版本以上,因为 5.7 版本加了一些新特性,同时不向下兼容。本 demo 里会尽量避免这种不兼容的地方,但还是建议尽量保证 5.7 版本以上)

    各模块介绍

    Module 名称Module 介绍 |------ spring-boot-demo-helloworldspring-boot 的一个 helloworld spring-boot-demo-propertiesspring-boot 读取配置文件中的内容 spring-boot-demo-actuatorspring-boot 集成 spring-boot-starter-actuator 用于监控 spring-boot 的启动和运行状态 spring-boot-demo-admin-clientspring-boot 集成 spring-boot-admin 来可视化的监控 spring-boot 程序的运行状态,可以与 actuator 互相搭配使用,客户端示例 spring-boot-demo-admin-serverspring-boot 集成 spring-boot-admin 来可视化的监控 spring-boot 程序的运行状态,可以与 actuator 互相搭配使用,服务端示例 spring-boot-demo-logbackspring-boot 集成 logback 日志 spring-boot-demo-log-aopspring-boot 使用 AOP 切面的方式记录 web 请求日志 spring-boot-demo-exception-handlerspring-boot 统一异常处理,包括2种,第一种返回统一的 json 格式,第二种统一跳转到异常页面 spring-boot-demo-template-freemarkerspring-boot 集成 Freemarker 模板引擎 spring-boot-demo-template-thymeleafspring-boot 集成 Thymeleaf 模板引擎 spring-boot-demo-template-beetlspring-boot 集成 Beetl 模板引擎 spring-boot-demo-template-enjoyspring-boot 集成 Enjoy 模板引擎 spring-boot-demo-orm-jdbctemplatespring-boot 集成 Jdbc Template 操作数据库,并简易封装通用 Dao 层 spring-boot-demo-orm-jpaspring-boot 集成 spring-boot-starter-data-jpa 操作数据库 spring-boot-demo-orm-mybatisspring-boot 集成原生mybatis,使用 mybatis-spring-boot-starter 集成 spring-boot-demo-orm-mybatis-mapper-pagespring-boot 集成通用Mapper和PageHelper,使用 mapper-spring-boot-starter 和 pagehelper-spring-boot-starter 集成 spring-boot-demo-orm-mybatis-plusspring-boot 集成 mybatis-plus,使用 mybatis-plus-boot-starter 集成,集成 BaseMapper、BaseService、ActiveRecord 操作数据库 spring-boot-demo-orm-beetlsqlspring-boot 集成 beetl-sql,使用 beetl-framework-starter 集成 spring-boot-demo-uploadspring-boot 文件上传示例,包含本地文件上传以及七牛云文件上传 spring-boot-demo-cache-redisspring-boot 整合 redis,操作redis中的数据,并使用redis缓存数据 spring-boot-demo-cache-ehcachespring-boot 整合 ehcache,使用 ehcache 缓存数据 spring-boot-demo-emailspring-boot 整合 email,包括发送简单文本邮件、HTML邮件(包括模板HTML邮件)、附件邮件、静态资源邮件 spring-boot-demo-taskspring-boot 快速实现定时任务 spring-boot-demo-task-quartzspring-boot 整合 quartz,并实现对定时任务的管理,包括新增定时任务,删除定时任务,暂停定时任务,恢复定时任务,修改定时任务启动时间,以及定时任务列表查询,`提供前端页面` spring-boot-demo-task-xxl-jobspring-boot 整合xxl-job,并提供绕过 `xxl-job-admin` 对定时任务的管理的方法,包括定时任务列表,触发器列表,新增定时任务,删除定时任务,停止定时任务,启动定时任务,修改定时任务,手动触发定时任务 spring-boot-demo-swaggerspring-boot 集成原生的 `swagger` 用于统一管理、测试 API 接口 spring-boot-demo-swagger-beautyspring-boot 集成第三方 `swagger` swagger-bootstrap-ui 美化API文档样式,用于统一管理、测试 API 接口 spring-boot-demo-rbac-securityspring-boot 集成 spring security 完成基于RBAC权限模型的权限管理,支持自定义过滤请求,动态权限认证,使用 JWT 安全认证,支持在线人数统计,手动踢出用户等操作 spring-boot-demo-rbac-shirospring-boot 集成 shiro 实现权限管理 待完成 spring-boot-demo-sessionspring-boot 集成 Spring Session 实现Session共享、重启程序Session不失效 spring-boot-demo-oauthspring-boot 实现 oauth 服务器功能,实现授权码机制 待完成 spring-boot-demo-socialspring-boot 集成第三方登录,集成 `justauth-spring-boot-starter` 实现QQ登录、GitHub登录、微信登录、谷歌登录、微软登录、小米登录、企业微信登录。 spring-boot-demo-zookeeperspring-boot 集成 Zookeeper 结合AOP实现分布式锁 spring-boot-demo-mq-rabbitmqspring-boot 集成 RabbitMQ 实现基于直接队列模式、分列模式、主题模式、延迟队列的消息发送和接收 spring-boot-demo-mq-rocketmqspring-boot 集成 RocketMQ,实现消息的发送和接收 待完成 spring-boot-demo-mq-kafkaspring-boot 集成 kafka,实现消息的发送和接收 spring-boot-demo-websocketspring-boot 集成 websocket,后端主动推送前端服务器运行信息 spring-boot-demo-websocket-socketiospring-boot 使用 netty-socketio 集成 websocket,实现一个简单的聊天室 spring-boot-demo-ureport2spring-boot 集成 ureport2 实现复杂的自定义的中国式报表 待完成 spring-boot-demo-uflospring-boot 集成 uflo 快速实现轻量级流程引擎 待完成 spring-boot-demo-urulespring-boot 集成 urule 快速实现规则引擎 待完成 spring-boot-demo-activitispring-boot 集成 activiti 7  流程引擎 待完成 spring-boot-demo-asyncspring-boot 使用原生提供的异步任务支持,实现异步执行任务 spring-boot-demo-warspring-boot 打成 war 包的配置 spring-boot-demo-elasticsearchspring-boot 集成 ElasticSearch,集成 `spring-boot-starter-data-elasticsearch` 完成对 ElasticSearch 的高级使用技巧,包括创建索引、配置映射、删除索引、增删改查基本操作、复杂查询、高级查询、聚合查询等 spring-boot-demo-dubbospring-boot 集成 Dubbo,分别为公共模块 `spring-boot-demo-dubbo-common`、服务提供方`spring-boot-demo-dubbo-provider`、服务调用方`spring-boot-demo-dubbo-consumer` spring-boot-demo-mongodbspring-boot 集成 MongoDB,使用官方的 starter 实现增删改查 spring-boot-demo-neo4jspring-boot 集成 Neo4j 图数据库,实现一个校园人物关系网的demo spring-boot-demo-dockerspring-boot 容器化 spring-boot-demo-multi-datasource-jpaspring-boot 使用JPA集成多数据源 spring-boot-demo-multi-datasource-mybatisspring-boot 使用Mybatis集成多数据源,使用 Mybatis-Plus 提供的开源解决方案实现 spring-boot-demo-sharding-jdbcspring-boot 使用 `sharding-jdbc` 实现分库分表,同时ORM采用 Mybatis-Plus spring-boot-demo-tiospring-boot 集成 tio 网络编程框架 待完成 spring-boot-demo-grpcspring-boot 集成grpc,配置tls/ssl,参见ISSUE#5 待完成 spring-boot-demo-codegenspring-boot 集成 velocity 模板技术实现的代码生成器,简化开发 spring-boot-demo-graylogspring-boot 集成 graylog 实现日志统一收集 spring-boot-demo-ssospring-boot 集成 SSO 单点登录,参见 ISSUE#12 待完成 spring-boot-demo-ldapspring-boot 集成 LDAP,集成 `spring-boot-starter-data-ldap` 完成对 Ldap 的基本 CURD操作, 并给出以登录为实战的 API 示例,参见 ISSUE#23,感谢 @fxbin spring-boot-demo-dynamic-datasourcespring-boot 动态添加数据源、动态切换数据源 spring-boot-demo-ratelimit-guavaspring-boot 使用 Guava RateLimiter 实现单机版限流,保护 API spring-boot-demo-ratelimit-redisspring-boot 使用 Redis + Lua 脚本实现分布式限流,保护 API spring-boot-demo-httpsspring-boot 集成 HTTPS spring-boot-demo-elasticsearch-rest-high-level-clientspring boot 集成 ElasticSearch 7.x 版本,使用官方 Rest High Level Client 操作 ES 数据 spring-boot-demo-flywayspring boot 集成 Flyway,项目启动时初始化数据库表结构,同时支持数据库脚本版本控制

    特别方便的是每个demo都有详细的知识点介绍和完整的代码可以学习,例如spring-boot 集成 graylog 用来实现日志统一收集的spring-boot-demo-graylog模块,除了基本的环境准备、pom文件、application配置文件等的详细介绍之外,还有demo如何运行、运行成功的配图教学,简直是手把手教你学SpringBoot。

    介绍一个适合深入学习并实战的SpringBoot项目

    最后,这么好用的SpringBoot项目,贴上GitHub地址:

    https://github.com/xkcoding/spring-boot-demo

    关注GitHub今日热榜,专注挖掘好用的开发工具,致力于分享优质高效的工具、资源、插件等,****助力开发者成长!

    介绍一个适合深入学习并实战的SpringBoot项目

    点个在看 你最好看

    原文始发于微信公众号(Java笔记虾):介绍一个适合深入学习并实战的SpringBoot项目

    本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

    本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

    原文链接:blog.ouyangsihai.cn >> 介绍一个适合深入学习并实战的SpringBoot项目


     上一篇
    五分钟,带你彻底掌握 MyBatis缓存 工作原理 五分钟,带你彻底掌握 MyBatis缓存 工作原理
    作者:双子孤狼 blog.csdn.net/zwx900102/article/details/108696005 前言在计算机的世界中,缓存无处不在,操作系统有操作系统的缓存,数据库也会有数据库
    下一篇 
    一款PO VO DTO 转换神器,求求你别在到处找工具类了! 一款PO VO DTO 转换神器,求求你别在到处找工具类了!
    作者:bettermann toutiao.com/i6891531055631696395/ 老铁们是不是经常为写一些实体转换的原始代码感到头疼,尤其是实体字段特别多的时候。介绍一个开源项目 mapstruct ,可以