spring-boot-demo
本项目示例基于spring boot 最新版本(2.4.0)实现,Spring Boot、Spring Cloud 学习示例,将持续更新……
在基于Spring Boot、Spring Cloud 分布微服务开发过程中,根据实际项目环境,需要选择、集成符合项目需求的各种组件和积累各种解决方案。基于这样的背景下,我开源了本示例项目,方便大家快速上手Spring Boot、Spring Cloud 。
每个示例都带有详细的介绍文档、作者在使用过程中踩过的坑、解决方案及参考资料,方便快速上手为你提供学习捷径,少绕弯路,提高开发效率。
有需要写关于spring boot、spring cloud示例,可以给我提issue哦
项目介绍
spring boot demo 是一个Spring Boot、Spring Cloud的项目示例,根据市场主流的后端技术,共集成了50+个demo,未来将持续更新。该项目包含helloworld(快速入门)、web(ssh项目快速搭建)、aop(切面编程)、data-redis(redis缓存)、quartz(集群任务实现)、shiro(权限管理)、oauth2(四种认证模式)、shign(接口参数防篡改重放)、encoder(用户密码设计)、actuator(服务监控)、cloud-config(配置中心)、cloud-gateway(服务网关)、email(邮件发送)、cloud-alibaba(微服务全家桶)等模块
开发环境
- JDK1.8 +
- Maven 3.5 +
- IntelliJ IDEA ULTIMATE 2020.3
- MySql 5.7 +
分支介绍
- master 分支:基于 Spring Boot 当前最新版本 2.4.x 将会持续更新,每个 Module 的 parent 依赖根目录下的 pom.xml
- v-2.3.x 分支:基于 Spring Boot 版本 2.3.x.RELEASE,每个 Module 的 parent 依赖根目录下的 pom.xml,该分支停止新加示例,只会维护bug
- v-2.1.x 分支:基于 Spring Boot 版本 2.1.x.RELEASE,每个 Module 独立依赖 spring-boot-starter-parent,该分支停止新加示例,只会维护bug
- dev:开发分支,主要用于开发调试,稳定后会更新到master
Spring Boot 模块
模块名称 | 主要内容 |
---|---|
hello-world | spring mvc,Spring Boot项目创建,单元测试 |
web | ssh项目,spring mvc,过滤器,拦截器,监视器,thymeleaf,lombok,jquery,bootstrap,mysql |
aop | aop,正则,前置通知,后置通知,环绕通知 |
data-redis | lettuce,redis,session redis,YAML配置,连接池,对象存储 |
quartz | Spring Scheduler,Quartz,分布式调度,集群,mysql持久化等 |
shiro | 授权、认证、加解密、统一异常处理 |
sign | 防篡改、防重放、文档自动生成 |
security | 授权、认证、加解密、mybatis plus使用 |
mybatis-plus-generator | 基于mybatisplus代码自动生成 |
mybatis-plus-crud | 基于mybatisplus实现数据库增、册、改、查 |
encoder | 主流加密算法介绍、用户加密算法推荐 |
actuator | actuator介绍 |
admin | 可视化服务监控、使用 |
security-oauth2-credentials | oauth2实现密码模式、客户端模式 |
security-oauth2-auth-code | 基于spring boot实现oauth2授权模式 |
mybatis-multi-datasource | mybatis、数据库集群、读写分离、读库负载均衡 |
template-thymeleaf | thymeleaf实现应用国际化示例 |
mq-redis | redis之mq实现,发布订阅模式 |
email实现邮件发送 | |
jGit | java调用git命令、jgit使用等 |
web-magic | web-magic实现某电影网站爬虫示例 |
netty | 基于BIO、NIO等tcp服务器搭建介绍 |
bean | Bean生命周期相关源码示例 |
docker | 使用 Docker 部署 Spring Boot 项目 |
mqtt | SpringBoot 集成 MQTT |
license3j | 基于license3j实现软件许可证创建、签署等功能 |
Spring Cloud 模块
模块名称 | 主要内容 |
---|---|
cloud-oauth2-auth-code | 基于spring cloud实现oath2授权模式 |
cloud-gateway | API主流网关、gateway快速上手 |
cloud-config | 配置中心(服务端、客户端)示例 |
cloud-feign | Eureka服务注册中心、负载均衡、声明式服务调用 |
cloud-hystrix | Hystrix服务容错、异常处理、注册中心示例 |
cloud-zuul | zuul服务网关、过滤器、路由转发、服务降级、负载均衡 |
cloud-alibaba | nacos服务中心、配置中心、限流等使用(系列示例整理中...) |
Spring Cloud Alibaba 模块
模块名称 | 主要内容 |
---|---|
nacos | Spring Cloud Alibaba(一)如何使用nacos服务注册和发现 |
config | Spring Cloud Alibaba(二)配置中心多项目、多配置文件、分目录实现 |
sentinel | Spring Cloud Alibaba(三)sentinel之熔断降级 |
dubbo | Spring Cloud Alibaba(四)Spring Cloud与dubbo的融合 |
rocketMQ | Spring Cloud Alibaba(五)rocketMQ 异步通信实现 |
其它
模块名称 | 主要内容 |
---|---|
leetcode | 力扣题解目录 |
Spring Boot 概述
Spring Boot简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的、产品级别的Spring应用。 Spring Boot为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring Boot应用只需要很少的Spring配置。
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是Spring Boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,Spring Boot整合了所有的框架。
Spring Boot的核心思想就是约定大于配置,一切自动完成。采用Spring Boot可以大大的简化你的开发模式,所有你想集成的常用框架,它都有对应的组件支持。
Spring Cloud 概述
SpringCloud是基于SpringBoot的一整套实现微服务的框架。他提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。最重要的是跟Spring Boot框架一起使用的话,会让你开发微服务架构的云服务非常好的方便。
Spring Boot与Spring Cloud关系
Spring boot 是 Spring 的一套快速配置脚手架,可以基于Spring Boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具;Spring boot专注于快速、方便集成的单个个体,Spring Cloud是关注全局的服务治理框架;Spring Boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring Boot来实现。
Spring boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring Boot,属于依赖的关系。
spring -> spring boot > spring cloud 这样的关系。
关于项目
- 码云仓库:https://gitee.com/tqlin/spring-boot-demo.git
- GitHub仓库:https://github.com/smltq/spring-boot-demo.git