Spring Boot Demo是一个用于深入学习和实践Spring Boot的项目,包含了66个集成demo,目标是让开发者能够通过实际操作来掌握Spring Boot的各种功能和最佳实践。
Spring Boot 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框架)
• 文件上传(本地文件上传和七牛云文件上传)
• 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(数据库初始化)
• Master分支:基于Spring Boot版本2.1.0.RELEASE,主要用于管理每个Module的通用依赖版本,方便开发者学习。
• v-1.5.x分支:基于Spring Boot版本1.5.8.RELEASE,每个Module均依赖spring-boot-demo-parent。该分支对新手不太友好,因Spring Boot已经升级到2.x版本,该分支的开发维护将逐步停止,所有内容会同步到master分支。
• JDK 1.8
• Maven 3.5
• IntelliJ IDEA ULTIMATE 2018.2(建议使用IDEA开发,并确保安装了lombok插件)
• MySQL 5.7(建议使用5.7版本以上,因为5.7版本增加了一些新特性,但不向下兼容)
1、克隆项目:git clone https://github.com/xkcoding/spring-boot-demo.git
2、使用IDEA打开克隆下来的项目。
3、在IDEA中,通过Maven Projects面板导入项目根目录下的pom.xml文件。
4、找到各个Module的Application类,就能运行各个demo。
5、每个demo都有详细的README文件,建议在运行前阅读。
• Pig:宇宙最强微服务认证授权脚手架(架构师必备),Pig GitHub仓库
项目中的每个Module都提供了具体的功能演示:
• demo-properties:Spring Boot读取配置文件中的内容。
• demo-actuator:Spring Boot集成spring-boot-starter-actuator用于监控Spring Boot的启动和运行状态。
• demo-admin-client:Spring Boot集成spring-boot-admin来可视化监控Spring Boot程序的运行状态。
• demo-log-aop:使用AOP切面记录Web请求日志。
• demo-exception-handler:统一异常处理,包括返回统一的JSON格式和跳转到异常页面。
• demo-orm-jdbctemplate:集成JdbcTemplate操作数据库,并简易封装通用Dao层。
• demo-orm-jpa:集成spring-boot-starter-data-jpa操作数据库。
• demo-orm-mybatis:集成原生mybatis,使用mybatis-spring-boot-starter集成。
• demo-upload:文件上传示例,包含本地文件上传以及七牛云文件上传。
• demo-cache-redis:整合Redis,操作Redis中的数据,并使用Redis缓存数据。
• demo-email:整合Email,包括发送简单文本邮件、HTML邮件、附件邮件、静态资源邮件。
• demo-task:快速实现定时任务。
• demo-task-quartz:整合Quartz,并实现对定时任务的管理。
• demo-task-xxl-job:整合Xxl-Job,并提供绕过Xxl-Job-Admin对定时任务的管理方法。
• demo-swagger:集成原生的Swagger用于统一管理、测试API接口。
• demo-swagger-beauty:集成第三方Swagger-Bootstrap-UI美化API文档样式。
• demo-rbac-security:集成Spring Security完成基于RBAC权限模型的权限管理。
• demo-rbac-shiro:集成Shiro实现权限管理。
• demo-mq-rabbitmq:集成RabbitMQ实现基于直接队列模式、分列模式、主题模式、延迟队列的消息发送和接收。
• demo-mq-rocketmq:集成RocketMQ,实现消息的发送和接收。
• demo-mq-kafka:集成Kafka,实现消息的发送和接收。
• demo-websocket:集成WebSocket,后端主动推送前端服务器运行信息。
• demo-ureport2:集成UReport2实现复杂的自定义的中国式报表。
• demo-async:使用原生提供的异步任务支持,实现异步执行任务。
• demo-elasticsearch:集成ElasticSearch,完成对ElasticSearch的高级使用技巧。
• demo-dubbo:集成Dubbo,分别为公共模块、服务提供方、服务调用方。
• demo-mongodb:集成MongoDB,使用官方的starter实现增删改查。
• demo-neo4j:集成Neo4j图数据库,实现一个校园人物关系网的demo。
• demo-multi-datasource-mybatis:使用Mybatis集成多数据源。
• demo-sharding-jdbc:使用sharding-jdbc实现分库分表。
• demo-graylog:集成graylog实现日志统一收集。
• demo-sso:集成SSO单点登录。
• demo-ldap:集成LDAP,完成对LDAP的基本CURD操作。
• demo-ratelimit-redis:使用Redis + Lua脚本实现分布式限流。
• demo-elasticsearch-rest-high-level-client:集成ElasticSearch 7.x版本,使用官方Rest High Level Client操作ES数据。
• demo-flyway:集成Flyway,项目启动时初始化数据库表结构。
• demo-ureport2:集成UReport2,实现中国式复杂报表设计。