/SpringBoot-Learning

基于Gradle构建,使用SpringBoot在各个场景的应用,包括集成消息中间件、前后端分离、数据库、缓存、分布式锁、分布式事务等

Primary LanguageJava

学习SpringBoot所记

项目构建

git clone https://github.com/liaozihong/SpringBoot-Learning.git 
cd SpringBoot-Learning
# 进入setting.gradle , 找到自己想要运行的模块,取消注释,构建即可
gradle clean build -x test

项目介绍

SpringBoot-ActiveMq(ActiveMq 消息队列)

集成ActiveMq,实现点到点发送、广播订阅功能,简单的小实例,未用到Springboot封装的ActiveTemplate,后续打算在写一个利用SpringBoot的ActiveTemplate在写一个demo。

SpringBoot-Dubbo-Provider (基于Dubbo的服务提供者)

集成Dubbo的服务提供者,依赖zookeeper。

SpringBoot-Dubbo-Consumer(基于Dubbo的服务实现者)

集成Dubbo的服务消费者。

SpringBoot-Elasticsearch(Java 操作Es进行CURD)

集成Elasticsearch实现增删改查、分页例子。
SpringBoot集成Elasticsearch实现增删改查

SpringBoot-Elasticsearch-Query(Es的高级搜索示例)

集成Elasticsearch实现中文、拼音分词,以及繁简体过滤,实现可以使用中文、拼音、繁体搜索,并且提供众多搜索类型,如:高亮、聚合。并且提供查看分词结果接口。
SpringBoot集成Elasticsearch 进阶,实现 中文、拼音、繁简体转换 搜索

SpringBoot-Email(使用JAVA进行发邮件)

集成Email发送各种类型的邮件。
SpringBoot 集成 E-mail发送各种类型的邮件

SpringBoot-FastDFS(集成使用FastDFS分布式文件系统)

连接FastDFS分布式文件系统,上传文件远程服务器。(包含FastDFS文件系统的搭建)

SpringBoot-Jpa-Thymeleaf(使用Thymeleaf模板,进行前端分离)

集成Jpa 做Crud,并使用Thymeleaf模板显示数据,提供了前后端分离的思路。
SpringBoot 集成 Thymeleaf 实现增删改查,实现前后端分离做法

SpringBoot-Memcached(使用Memcached缓存中间件)

集成memcach`ed,内置了一个通用的操作管理类,可快速操作缓存。
https://blog.csdn.net/qq_39211866/article/details/84312170

SpringBoot-Mongodb (实现基于Mongodb 的CURD)

集成较火的nosql:Mongodb,使用泛型设计了一个通用的crud管理了。写起crud来方便快捷。

SpringBoot-Mybatis(SpringBoot 使用 Druid 连接池示例)

集成Mybatis,并使用druid做连接池,配置了druid的监控功能。

Spring-Mybatis-Multisource (SpringBoot 配置Mybatis多数据源示例)

集成Mybatis,并配置了双数据源,也可直接扩展多数据源。
SpringBoot集成Mybatis实现多数据源

SpringBoot-RabbitMq(集成RabbitMq消息中间件,实现延时队列)

集成RabbitMq,配置了延时队列,死信队列,并且提供了重试机制的设计**,可做参考。

SpringBoot-RateLimiter(基于Guava实现api限流功能)

集成Guava,利用RateLimiter API,实现限流功能。并且设计了有一个限流注解,能快速对服务进行限流配置。
基于Guava的RateLimiter设计常用接口限流功能

SpringBoot-Redis-Distributed-Lock(使用Redis+Lua实现分布式锁示例)

使用Redis+Lua实现分布式锁,附带测试实例。
SpringBoot 集成 Redis 实现分布式锁

SpringBoot-Redis-Distributed-RedLock(使用Redis官方推荐的Redisson演示分布式锁使用示例 )

使用Redis官方推荐的Redisson实现分布式锁。
SpringBoot 集成Redisson实现分布式锁

SpringBoot-WebSocket(SpringBoot + WebSocket实现双向通讯)

集成WebSocket打造一个聊天室。
SpringBoot集成WebSocket 打造聊天室

SpringBoot-Zookeeper-Distributed-Lock(基于Zookeeper的Watch机制实现分布式锁)

使用Zookeeper实现分布式锁。
Zookeeper分布式锁

SpringBoot-Shiro(集成Shiro安全框架)

使用Shiro实现

添加用户注册,用户注销,当前用户显示;  
添加动态验证码验证,记住密码功能;
添加用户权限获取添加Redis缓存管理器,避免每次验证都查询数据库;
添加用户登录错误次数记录,到达特定次数将暂时停用改账号,避免暴力破解,基于redis;
添加登录限制,限定同一时间只能在一处登录,并踢出前一个登录;
添加异步单点登录,同上一条相似;
添加当前在线人数显示,可自己造轮子,做在线人数踢出功能,思路已给出。

SpringBoot-JWT(使用Shiro + JWT 对接口调用者进行认证和鉴权)

使用Jwt标准+Shiro安全框架,对请求进行认证和鉴权。
SpringBoot集成Shiro、JWT 进行请求认证和鉴权

SpringBoot-Kafka (基于kafka进行消息传递与消费)

使用SpringBoot集成kafka实现消息生产与消费,日常使用可使项目部分业务逻辑解耦,使项目具有更高的可扩展性,可恢复性,提高性能。
SpringBoot 搭建并使用Kafka消息中间件

SpringBoot-Validator(基于Hibernate 的Validator进行参数校验)

基于validator对参数和实体进行校验,不符合约束条件将会抛出错误,在全局异常处处理。

SpringBoot-Redis-Sentinel(Redis哨兵搭建及SpringBoot连接使用Redis集群)

使用SpringBoot连接Redis哨兵集群,配置连接哨兵,由哨兵给出可连接的redis ip,实现高可用。
SpringBoot 2.0 连接 Redis 主从、哨兵集群

SpringBoot-JTA-Atomikos(多数据源下基于Atomikos实现分布式事务)

通常在项目中,我用会用到不止一种数据源,也就是多数据源,这时内置的Spring事务管理器并不能对多数据源进行事务处理,所以我们就要使用Atomikos事务管理器来跨多个XA资源的实现分布式JTA事务。
SpringBoot 2.0 集成Atomikos、Durid 实现多数据源、分布式事务

SpringBoot-Nsq-Producer(Nsq消息生产者)

SpringBoot 使用Nsq消息中间件,此项目为消息生产者例子。
Springboot 2 集成 Nsq 消息中间件实现生产消费应用

SpringBoot-Nsq-Consumer(Nsq消息消费者)

SpringBoot 使用Nsq消息中间件,此项目为消息消费者例子。
Springboot 2 集成 Nsq 消息中间件实现生产消费应用

SpringBoot-Mybatis-Mycat(使用中间件Mycat进行分库分表,并使用应用连接测试)

使用Mycat数据库中间件,对Mysql进行数据分片存放,主从复制(待实现)

SpringBoot-Nacos-Config(基于阿里巴巴的Nacos实现公共配置中心)

使用Nacos注册中心实现动态配置

SpringBoot-SpringSecurity(使用Spring Security 进行资源访问权限控制)

SpringBoot 基于Spring-Security实现资源的权限控制
SpringBoot2 集成SpringSecurity对资源访问认证

SpringBoot-Oauth2(演示Oauth2 授权协议的简化、密码、客户端模式)

SpringBoot 基于Oauth2授权协议实现简化、密码、客户端模式.

SpringBoot-Oauth2-Code(演示Oauth2 授权协议的授权码登录流程)

SpringBoot 基于Oauth2授权协议实现完整的授权码登录流程.

SpringBoot-Test-Starter(自定义测试模块,揭秘Springboot自动配置的神秘面纱)

SpringBoot 自动配置例子,了解SpringBoot的Starter原理。

SpringBoot-Builder-Docker(SpringBoot 配置Gradle构建Docker镜像例子)

SpringBoot 使用Gradle做依赖管理时,配置打包docker镜像的DEMO

SpringBoot-Thrift-Server(Thrift 实现远程服务调用 服务端)

SpringBoot 结合 Thrift 构建远程服务调用

SpringBoot-Thrift-Client(Thrift 实现远程服务调用 客戶端)

SpringBoot基于Thrift实现RPC客户端

SpringBoot-Utils

各项目的依赖模块,存放一些工具类