# FunSpringFamily **Repository Path**: pruidong/FunSpringFamily ## Basic Information - **Project Name**: FunSpringFamily - **Description**: 极客时间课程-《玩转Spring全家桶》练习源码 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 3 - **Created**: 2019-02-13 - **Last Updated**: 2022-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 《玩转Spring全家桶》练习源码 #### 介绍 极客时间课程-《玩转Spring全家桶》练习源码 #### 软件架构 * 开发工具: IDEA * Java Version: 11 (从Chapter7的[customer-service]开始,JDK版本升级至 12 ) * Spring Boot Version: 2.1.2 * Spring Framework Version: 5.1.4 #### 重要提示 * 192.168.37.130 这个IP是我Linux虚拟机的IP地址,存在各配置文件中,需要修改为实际地址! * docker 文件夹下面是与docker相关服务的命令. #### 目录说明 * Chapter2 JDBC必知必会 * datasourcedemo - 第五节-如何配置单数据源 * pure-spring-datasource-demo 第五节-如何配置单数据源 - 不使用Spring Boot * multi-datasource-demo 第六节-如何配置多数据源 * druid-demo 第八节 那些好用的连接池们: Alibaba Druid * programmatic-transaction-demo 第十一节 什么是Spring的事务抽象(下) - 编程式事务 * declarative-transaction-demo 第十一节 什么是Spring的事务抽象(下) - 声明式事务 * errorcode-demo 第十二节 了解Spring的JDBC异常抽象 (在test包中运行) * Faq201902 课程答疑 * transaction-propagation-demo 事务演示示例 * druid-demo Alibaba Druid演示示例 * druid-demo-upgrade Alibaba Druid演示示例升级,增加了WEB监控和日志记录SQL * Chapter3 O/R Mapping实践 * jpa-demo 第十五节 开始我们的线上咖啡馆实战项目:SpringBucks * jpa-complex-demo 第十六节 通过 Spring Data JPA 操作数据库 * mybatis-demo 第十八节 通过 MyBatis 操作数据库 * mybatis-generator-demo 第十九节 让MyBatis更好用的那些工具:MyBatis Generator * mybatis-pagehelper-demo 第二十节 让MyBatis更好用的那些工具 - MyBatis PageHelper * springbucks 第二十一节 SpringBucks 实战项目进度小结 * Chapter4 NoSQL实践 * mongo-demo 第二十三节 在Spring中访问MongoDB * mongo-repository-demo 第二十三节 在Spring中访问MongoDB * jedis-demo 第二十四节 在Spring中访问Redis * cache-demo 第二十六节 了解Spring的缓存抽象 * cache-with-redis-demo 第二十六节 了解Spring的缓存抽象 * redis-demo 第二十七节 Redis 在 Spring 中的其他用法 * redis-repository-demo 第二十七节 Redis 在 Spring 中的其他用法 * redis-mongo-repository-demo 第二十八节 [课后练习]使用MongoDB保存数据,并使用Redis缓存数据 * Chapter5 数据访问进阶 * simple-reactor-demo 第三十节 Project Reactor介绍(下) * p-custom-reactor-connection-redis-demo 连接Redis练习(与视频教程无关) * p-custom-reactor-connection-mongo-demo 连接MongoDB练习(与视频教程无关) * redis-demo 第三十一节 通过Reactive的方式访问Redis * mongodb-demo 第三十二节 通过Reactive的方式访问MongoDB * simple-r2dbc-demo 第三十三节 通过 Reactive 的方式访问 RDBMS * r2dbc-repository-demo 第三十三节 通过 Reactive 的方式访问 RDBMS * performance-aspect-demo 第三十五节 通过 AOP 打印数据访问层的摘要(下) * reactive-springbucks 第三十六节 SpringBucks 实战项目进度小结 * Chapter6 Spring MVC实践 * simple-controller-demo 第三十七节 编写第一个Spring MVC Controller * context-hierarchy-demo 第三十八节 理解Spring的应用上下文 * complex-controller-demo 第四十节 如何定义处理方法(上) * more-complex-controller-demo 第四十一节 如何定义处理方法(下) * p-custom-spring-redirect-demo 第四十三节 Spring MVC 中的视图解析机制(下) -- 练习 * json-view-demo 第四十四节 Spring MVC 中的常用视图(上) * thymeleaf-view-demo 第四十五节 Spring MVC 中的常用视图(下) * cache-demo 第四十六节 静态资源与缓存 * exception-demo 第四十七节 Spring MVC中的异常处理机制 * springbucks 第四十八节 了解Spring MVC的切入点 * Faq201903 课程答疑 * jpa-demo 使用MySQL数据库替代H2(注:需要使用MySQL) * stream-demo 示例中用到的一些Java语言特性说明 * Chapter7 访问Web资源 * simple-resttemplate-demo 第五十节 通过RestTemplate访问Web资源 * complex-resttemplate-demo 第五十一节 RestTemplate的高阶用法 * advanced-resttemplate-demo 第五十二节 简单定制RestTemplate * webclient-demo 第五十三节 通过WebClient访问Web资源 * customer-service 第五十四节 SpringBucks实战项目小结(PS : 自此项目开始,JDK升级至Java 12.) * Chapter8 Web开发进阶 * hateoas-waiter-service 第五十八节 使用 Spring Data REST 实现简单的超媒体服务(上) * hateoas-customer-service 第五十九节 使用 Spring Data REST 实现简单的超媒体服务(下) * webflux-waiter-service 第六十二节 使用 WebFlux 代替 Spring MVC(下) * Chapter9 重新认识Spring Boot * autoconfig (多模块,需要同时导入) 第六十六节 动手实现自己的自动配置 * backport (多模块,需要同时导入) 第六十七节 如何在低版本Spring中快速实现类似自动配置的功能 * starter (多模块,需要同时导入) 第六十九节 定制自己的起步依赖 * property-source-demo 第七十一节 理解配置背后的 PropertySource 抽象 * Chapter10 运行中的Spring Boot * indicator-demo 第七十三节 动手定制自己的Health Indicator * metrics-demo 第七十四节 通过Micrometer获取运行数据 * spring-boot-admin (多模块,需要同时导入) 第七十五节 通过Spring Boot Admin 了解程序的运行状态 * tomcat-demo 第七十六节 如何定制web容器的运行状态 * custom-http2-server-demo 配置Tomcat服务器支持HTTP/2(h2)的示例 -- 练习 * custom-spring-boot-docker-demo 在Docker中运行Spring Boot应用程序 -- 练习 * ssl (多模块,需要同时导入) 第八十节 如何配置容器支持 HTTP/2(上) * http2 (多模块,需要同时导入) 第八十一节 如何配置容器支持 HTTP/2(下) * command-line-demo 第八十二节 如何编写命令行运行的程序 * jar-demo 第八十三节 了解可执行 Jar 背后的秘密 * docker-demo 第八十四节 如何将 Spring Boot 应用打包成 Docker 镜像文件 * Chapter11 Spring Cloud及Cloud Native概述 * Chapter12 服务注册与发现 * (eureka-service eureka-waiter-service) 第九十一节 使用 Eureka 作为服务注册中心 * (eureka-service eureka-waiter-service ribbon-customer-service) 第九十二节 深入理解服务发现背后的 DiscoveryClient * (eureka-service eureka-waiter-service feign-customer-service) 第九十三节 使用 Spring Cloud Loadbalancer 访问服务 * (zk-waiter-service zk-customer-service)(需要先在docker中开启Zookeeper服务) 第九十五节 使用 Zookeeper 作为服务注册中心 * (consul-waiter-service consul-customer-service)(需要先在docker中开启Consul服务) 第九十六节 使用Consul作为服务注册中心 * (nacos-waiter-service nacos-customer-service) 第九十七节 使用Nacos作为服务注册中心 * (fixed-discovery-client-demo springbucks[第六章的 springbucks]) 第九十八节 如何定制自己的DiscoveryClient * Chapter13 服务熔断 * (circuit-break-demo consul-waiter-service)(需要先在docker中开启Consul服务) 第一百节 使用Hystrix 实现服务熔断(上) * (consul-waiter-service hystrix-customer-service)(需要先在docker中开启Consul服务) 第一百零一节 使用Hystrix 实现服务熔断(下) * (consul-waiter-service hystrix-dashboard-demo hystrix-stream-customer-service turbine-demo)(需要先在docker中开启Consul服务) 第一百零二节 如何观察服务熔断 * (consul-waiter-service resilience4j-circuitbreaker-demo)(需要先在docker中开启Consul服务) 第一百零三节 使用Resilience4j实现服务熔断 * (consul-waiter-service bulkhead-customer-service)(需要先在docker中开启Consul服务) 第一百零四节 使用Resilience4j实现服务限流(上) * (bulkhead-customer-service ratelimiter-waiter-service)(需要先在docker中开启Consul服务) 第一百零五节 使用Resilience4j实现服务限流(下) * Chapter14 服务配置 * config-server(需要先在docker中开启Consul服务) 第107节 基于Git的配置中心(上) * (config-server git-config-waiter-service)(需要先在docker中开启Consul服务) 第108节 基于Git的配置中心(下) * (zk-config-waiter-service)(需要先在docker中开启Consul服务) 第109节 基于Zookeeper的配置中心 * (consul-config-waiter-service)(需要先在docker中开启Consul服务) 第111节 基于Consul的配置中心 * (nacos-config-waiter-service)(需要先在docker中开启Consul服务) 第112节 基于Nacos的配置中心 * Chapter15 Spring Cloud Stream * (rabbitmq-barista-service rabbitmq-waiter-service)(需要先在docker中开启Consul、MySQL、RabbitMQ服务) 第115节 通过Spring Cloud Stream访问RabbitMQ * (kafka-barista-service kafka-barista-service)(需要先在docker中开启Consul、MySQL、Kafka服务{使用kafka-waiter-service项目根目录下面的docker-compose.yml进行启动}) 第116节 通过Spring Cloud Stream访问Kafka * (kafka-barista-service kafka-barista-service scheduled-customer-service)(需要先在docker中开启Consul、MySQL、Kafka服务{使用kafka-waiter-service项目根目录下面的docker-compose.yml进行启动}) 第116节 - 1 通过Spring Cloud Stream访问Kafka * (busy-waiter-service lazy-customer-service rabbitmq-barista-service)(需要先在docker中开启Consul、MySQL、RabbitMQ服务) 第117节 SpringBucks实战项目进度小结 * Chapter16 服务链路追踪 * (rabbitmq-barista-service sleuth-customer-service sleuth-waiter-service)(需要先在docker中开启Consul、MySQL、RabbitMQ、Zipkin服务) 第119节 使用Spring Cloud Sleuth实现链路追踪 * (mq-zipkin-barista-service sleuth-customer-service sleuth-waiter-service)(需要先在docker中开启Consul、MySQL、RabbitMQ、Zipkin服务{RabbitMQ和Zipkin需要关联}) 第120节 如何追踪消息链路 * (final-barista-service final-customer-service final-waiter-service)(使用Chapter16/docker-compose.yml启动) 第122节 SpringBucks实战项目进度小结