项目用于记录学习、使用 Spring Boot 框架的一些知识。
内容主要是 Spring Boot 框架的一些特性、功能的实现、常用框架的整合等。
Spring Boot版本:2.X
JDK版本:8
开发工具:IntelliJ IDEA
代码风格:google-java-format
Spring Boot的一些使用。
- hello-world:一个简单 Spring Boot Hello World 示例
- devtools:热部署插件整合示例
- package image:构建部署镜像示例
- package war:构建war格式部署包示例
- package zip:构建zip格式部署包示例,zip包中包含jar和各个环境配置文件
Spring Boot的一些特性。
- aop:面向切面编程
- aspect:面向切面
- filter:过滤器
- interceptor:拦截器
- async:异步调用
- auto-configuration:自动配置
- bean-validation:Bean 数据验证(常用注解、校验模式配置、国际化、自定义验证器)
- datasource:数据源
- dynamic-datasource:动态切换数据源
- multi-datasource-jpa:多数据源 - Spring Data JPA 实现
- multi-datasource-mybatis:多数据源 - mybatis 实现
- event-listener:事件监听
- externalized-configuration:外部化配置
- i18n:国际化消息提示
- JDBC:Java 连接、操作数据库
- spring-jdbc:通过Spring JdbcTemplate 操作数据库
- spring-data-jdbc:通过 Spring Data JDBC 操作数据库
- spring-data-jpa:通过 Spring Data JPA 操作数据库
- logging:日志
- logging-logback:整合 logback
- logging-log4j2:整合 log4j2
- tomcat access log:tomcat 访问日志
- retry:重试
- scheduling:定时任务调度
- spring-task:基于 spring task 实现定时任务调度
- quartz-scheduler:基于 quartz 实现定时任务调度
- security:安全、认证、授权
- sending-email:发送邮件
- spring-web:同步阻塞的 Web 框架
- spring-webflux:响应式、异步非阻塞的 Web 框架
- template:模板引擎
- freemarker:一个模板引擎,一个基于模板生成文本输出的通用工具
- thymeleaf:一个现代的服务器端 Java 模板引擎,适用于 web 和独立环境
- testing:测试
- transaction:事务
- transaction-spring-annotation:注解式事务
- transaction-spring-interceptor:拦截器统一管理事务
- transaction-multi-datasource-jpa:多数据源事务 - spring data jpa 实现
- transaction-multi-datasource-mybatis:多数据源事务 - mybatis 实现
- web-services:面向服务
- websocket:一种在单个 TCP 连接上进行全双工通信的协议
一些框架或功能整合后的 Spring Boot Starter。
- kaptcha-spring-boot-starter:整合kaptcha快速实现验证码功能
- okhttp-spring-boot-starter:整合okhttp快速实现http功能
一些常用框架的集成。
- derby:一个完全用java编写的数据库
- elastic-search:一个分布式、RESTful 风格的搜索和数据分析引擎
- h2database:一个用 Java 开发的嵌入式数据库
- hsqldb:用 Java 编写的一款 SQL 关系数据库引擎
- jetty:一个开源的 servlet 容器
- kafka:由 Apache 软件基金会开发的一个开源流处理平台
- mongodb:一个基于分布式文件存储的数据库
- mysql:mysql 数据库集成示例
- oracle:oracle 数据库集成示例
- prometheus:一个开源的系统监控和报警系统
- prometheus-simple:开放 prometheus 指标端口,用于 prometheus 采集指标
- prometheus-pushgateway:推送 prometheus 指标到 Prometheus PushGateway
- rabbitmq:一套开源(MPL)的消息队列服务软件
- rabbitmq-consumer:rabbitmq消费者示例
- rabbitmq-provider:rabbitmq生产者示例
- redis:一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库
- undertow:Undertow 是红帽公司开发的一款基于NIO 的高性能 Web 嵌入式服务器
- zookeeper:一个分布式的,开放源码的分布式应用程序协调服务
一些常用功能框架的使用示例。
- alibaba-druid:阿里巴巴计算平台事业部出品,为监控而生的数据库连接池
- alibaba-easyexcel:EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目
- alibaba-sentinel:面向分布式服务框架的轻量级流量控制框架,主要以流量为切入点,从流量控制,熔断降级,系统负载保护等多个维度来维护系统的稳定性
- apache-dubbo:一款高性能、轻量级的开源服务框架
- dubbo-common:dubbo 示例 - common 模块
- dubbo-consumer:dubbo 示例 - 服务消费者
- dubbo-provider:dubbo 示例 - 服务提供者
- apache-poi:一个 Java 实现的操作 Microsoft Office格式文档的工具库
- browscap-java:用于解析useragent头,以提取有关使用的浏览器、浏览器版本、平台、平台版本和设备类型的信息
- caffeine:一个基于Java8开发的提供了近乎最佳命中率的高性能的缓存库
- easy-captcha:Java图形验证码,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目
- flyway:一个开源数据库迁移工具
- google-zxing:Google开源的多维码生成工具
- hikaricp:一个高性能的 JDBC 连接池组件
- ip2region:离线IP地址定位库
- jasypt:提供一种简单的方式来为项目增加加密功能
- jjwt:用于在JVM和Android上创建和验证JSON Web Token(JWT)
- jsch:SSH2的一个纯Java实现
- kaptcha:一个可高度配置的实用验证码生成工具
- liquibase:一个用于跟踪,管理和应用数据库变化的开源的数据库重构工具
- macro-benchmarks:Java性能测试工具,主要是对工程中一些方法进行一些基准测试,支持的时间单位为:nano / micro / milli / macro
- mapstruct:一个 Java 实体映射工具
- mybatis:MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射
- mybatis-simple:mybatis 整合示例
- mybatis-plus:MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
- mybatis-mapper:mybatis 通用 Mapper
- mybatis-pagehelper:mybatis 分页插件
- netty:Netty 提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。
- netty-client:netty 客户端
- netty-server:netty 服务端
- open-api:Open API ,开放 API 文档规范格式
- springdoc-openapi:一个开源的 API doc 框架,可以将 Controller 的方法以文档的形式展现
- springfox-swagger:一个开源的 API doc 框架,可以将 Controller 的方法以文档的形式展现
- redoc:an openapi-powered documentation ui
- oshi-core:Java的免费基于JNA的(本机)操作系统和硬件信息库,跨平台查看服务器信息
- p6spy:记录任何Java应用程序的所有JDBC事务
- redisson:基于redis的扩展库,使得redis除了应用于缓存以外,还能做队列等数据结构,直接使用的分布式锁,以及人物调度器等。
- resilience4j:Resilience4j是一个轻量级、易于使用的容错库,其灵感来自Netflix Hystrix,但专为Java 8和函数式编程设计。
- rsocket:RSocket是一种二进制的点对点通信协议,是一种新的网络通信第七层协议。
- rsocket-client:rsocket 客户端
- rsocket-server:rsocket 服务端
- spring-boot-admin:Admin UI for administration of spring boot applications
- spring-boot-admin-client:spring-boot-admin 客户端
- spring-boot-admin-server:spring-boot-admin 服务端
- UserAgentUtils:实时解析HTTP请求或分析日志文件并收集有关用户代理的信息
一些实现相应功能的服务示例。
- api-data-codec:api 接口请求/响应数据编解码
- distributed-scheduling-service:分布式定时任务调度服务
- spring-task-distributed-scheduling-service:通过 spring task 实现简单的分布式定时任务调度服务