Java 开发组件大全覆盖后端主流技术栈(基础、Web、ORM、中间件、微服务、安全、工具、测试、运维、信创适配常用组件)

一、基础核心 & 工具类库

基础工具

  1. Guava:Google 工具库,集合、缓存、字符串、并发、IO,Java 原生增强
  2. Hutool:国产全能工具包,日期、加密、文件、反射、HTTP,开箱即用
  3. Apache Commons
    • commons-lang3:字符串、对象工具
    • commons-collections4:集合工具
    • commons-io:IO 文件操作
    • commons-pool2:对象池
  4. MapStruct:Bean 映射,DTO<->Entity,编译期生成代码,性能远高于反射拷贝
  5. Lombok:注解简化代码,@Data/@Builder/@NoArgsConstructor,减少 get/set
  6. Caesar / Javassist / ByteBuddy:字节码操作,动态代理、AOP 底层

日期、序列化、JSON

  1. Jackson:Spring 默认 JSON 序列化,性能好
  2. Fastjson2:阿里 JSON 库(优先 v2,老 fastjson 存在安全漏洞)
  3. Gson:谷歌 JSON 库
  4. Protobuf / Avro / Thrift:二进制序列化,RPC、大数据传输
  5. java-time(JDK8+) :官方日期 API;ThreeTen-Extra扩展日期工具

加密、编码

  1. BouncyCastle:密码学库,国密 SM2/SM3/SM4、各种加密算法
  2. Hutool Crypto:封装 AES、RSA、国密,简单易用

二、Web & Servlet 体系

  1. Spring Boot:快速开发单体 Web 应用,自动装配
  2. Spring MVC:Web 请求框架,控制器、参数解析、视图
  3. Undertow / Tomcat / Jetty:内嵌 Web 容器
  4. Spring WebFlux:响应式非阻塞 Web(Reactor)
  5. JAX-RS(Jersey):REST 规范实现
  6. OpenAPI / Swagger / Knife4j / SpringDoc :接口文档
    • SpringDoc:SpringBoot3 推荐,替代老 swagger2
    • Knife4j:美化 UI 增强版

三、数据访问 ORM & JDBC

  1. MyBatis :半 ORM,SQL 可控,国内最常用
    • MyBatis-Plus:MyBatis 增强,CRUD 封装、分页、条件构造器
  2. Spring Data JPA:JPA 规范,面向对象,适合快速开发
  3. Hibernate:老牌 JPA 实现
  4. ShardingSphere:分库分表、读写分离、分布式数据库中间件(Sharding-JDBC/Proxy)
  5. Flyway / Liquibase:数据库版本迁移脚本管理
  6. HikariCP:SpringBoot 默认高性能 JDBC 连接池
  7. Druid:阿里连接池,带监控、防 SQL 注入
  8. PageHelper:MyBatis 分页插件
  9. Dynamic-Datasource:多数据源动态切换

四、微服务全家桶(Spring Cloud)

核心框架

  • Spring Cloud :微服务规范;Spring Cloud Alibaba阿里生态微服务

注册中心 & 配置中心

  1. Nacos:注册中心 + 配置中心(SpringCloudAlibaba 主推)
  2. Eureka(已停更)、Consul、Zookeeper
  3. Apollo:携程分布式配置中心,配置灰度发布
  4. Spring Cloud Config:原生配置中心

网关

  1. Spring Cloud Gateway:Spring 官方响应式网关,替代 Zuul
  2. Zuul1/2:Netflix 网关(Zuul1 阻塞,不推荐新项目)

服务通信 & 熔断限流

  1. OpenFeign:声明式 HTTP 客户端,服务调用
  2. Dubbo:阿里高性能 RPC 框架,SpringCloud Alibaba 集成
  3. Sentinel:阿里流量控制、熔断降级、热点限流(推荐)
  4. Resilience4j:轻量熔断降级(替代 Hystrix)
  5. Hystrix(停止维护)

分布式事务

  1. Seata:阿里分布式事务,AT/TCC/SAGA/XA 模式,最常用
  2. TCC-Transaction 、ByteTCC

五、消息队列(MQ)客户端组件

  1. RocketMQ:阿里消息队列,rocketmq-client
  2. RabbitMQ:amqp-client / spring-amqp
  3. Kafka:kafka-clients,spring-kafka
  4. Pulsar:pulsar-client
  5. Spring Stream:统一 MQ 抽象层,切换 MQ 无需改业务代码

六、缓存组件

  1. Redis
    • lettuce:SpringBoot2 + 默认 Redis 客户端(非阻塞)
    • jedis:老客户端
    • Redisson:Redis 分布式锁、分布式集合、分布式对象,功能极强
  2. Caffeine:JVM 本地缓存,高性能,Guava Cache 升级
  3. Ehcache:本地缓存,支持磁盘持久化
  4. Spring Cache:缓存抽象注解,@Cacheable,适配 Redis/Caffeine

七、搜索 & 大数据

  1. Elasticsearch:搜索引擎,客户端:HighLevelRestClient / Elasticsearch Java Client
  2. Canal:阿里 MySQL binlog 同步组件,监听数据库变更
  3. Flink / Spark Java API:实时、离线大数据计算
  4. Lucene:底层检索内核,ES 底层依赖

八、安全组件

  1. Spring Security:认证授权、OAuth2、JWT
  2. Sa-Token:国产轻量权限框架,登录、鉴权、单点登录、防重放,上手简单
  3. JJWT:JWT 生成解析
  4. Apache Shiro:老牌安全框架
  5. Hutool JWT:简易 JWT 工具
  6. BCrypt:密码哈希加密

九、定时任务 & 异步

  1. Quartz:强大定时任务,支持持久化
  2. XXL-Job:分布式定时任务平台(主流)
  3. Spring Task:Spring 自带 @Scheduled 简单定时
  4. PowerJob:分布式任务调度
  5. Spring @Async + ThreadPoolExecutor:异步线程池
  6. Disruptor:高性能无锁并发队列,高吞吐事件处理

十、文件、OSS、Excel/PDF 处理

  1. EasyExcel:阿里 Excel 读写,解决 POI 内存溢出
  2. POI:原生 Office 文档读写(大数据容易 OOM)
  3. iText / OpenPDF:PDF 生成
  4. Apache POI-OOXML:docx/pptx
  5. MinIO Java SDK / 阿里云 OSS / 腾讯 COS SDK:对象存储
  6. Tika:文档内容提取,解析 PDF、Word 等

十一、测试组件

  1. JUnit5(Jupiter):单元测试
  2. AssertJ:流式断言,比 JUnit 断言好用
  3. Mockito:Mock 依赖
  4. Testcontainers:本地拉起 Docker 容器做集成测试(MySQL/Redis)
  5. JMeter:压测工具
  6. SpringBootTest:Spring 集成测试
  7. Selenium / Playwright Java:UI 自动化

十二、监控、链路追踪、日志

日志

  1. SLF4J:日志门面;Logback(Spring 默认)、Log4j2
  2. Loki / ELK:日志收集体系

监控 & APM

  1. Spring Boot Actuator:应用健康、指标暴露端点
  2. Micrometer + Prometheus:指标采集,对接 Prometheus+Grafana
  3. SkyWalking:分布式链路追踪、APM(国产推荐)
  4. Sleuth + Zipkin:SpringCloud 链路追踪
  5. Pinpoint:APM 全链路监控

十三、其他常用中间件客户端

  1. Zookeeper Curator:zk 客户端,分布式锁、选举
  2. Redisson:Redis 分布式锁、分布式 ID
  3. Snowflake:雪花算法分布式 ID;百度 UidGenerator、美团 Leaf

十四、代码质量 & 构建工具

  1. Maven / Gradle:项目构建
  2. CheckStyle:代码规范
  3. SpotBugs:代码漏洞扫描
  4. SonarQube:代码质量平台
  5. Arthas:阿里 Java 在线诊断神器,线上排查问题

十五、信创适配常用组件

  • 数据库:达梦、人大金仓、Vastbase、OceanBase 驱动
  • 中间件:东方通、金蝶天燕、TongWeb 适配包
  • 国密:BouncyCastle、国密算法工具

快速选型建议

  • 单体后台:SpringBoot + MyBatis-Plus + Hutool + Lombok + SpringDoc + Redis
  • 微服务:SpringCloudAlibaba (Nacos+Dubbo/Sentinel+Seata+Gateway)
  • 分布式任务:XXL-Job
  • 权限:Sa-Token 或 SpringSecurity
  • Excel:EasyExcel
  • 分布式锁:Redisson

SpringCloud Alibaba 微服务业务服务 pom(微服务业务模块,Nacos+Sentinel+Seata+Dubbo)

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.5</version>
        <relativePath/>
    </parent>

    <groupId>com.example</groupId>
    <artifactId>cloud-service-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>cloud-service-demo</name>
    <description>SpringCloudAlibaba微服务业务模块脚手架</description>

    <properties>
        <java.version>17</java.version>
        <spring-cloud.version>2023.0.1</spring-cloud.version>
        <spring-cloud-alibaba.version>2022.0.0.0</spring-cloud-alibaba.version>
        <hutool.version>5.8.28</hutool.version>
        <lombok.version>1.18.30</lombok.version>
        <mybatis-plus.version>3.5.17</mybatis-plus.version>
        <redisson.version>3.27.0</redisson.version>
        <easyexcel.version>3.3.2</easyexcel.version>
        <springdoc.version>2.5.0</springdoc.version>
        <seata.version>1.8.0</seata.version>
        <mapstruct.version>1.5.5.Final</mapstruct.version>
    </properties>

    <!-- 版本统一管理 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <!-- Web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

        <!-- Nacos 注册中心+配置中心 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <!-- Dubbo RPC -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-dubbo</artifactId>
        </dependency>

        <!-- Sentinel 限流熔断 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>

        <!-- Seata 分布式事务 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
        </dependency>
        <dependency>
            <groupId>io.seata</groupId>
            <artifactId>seata-all</artifactId>
            <version>${seata.version}</version>
        </dependency>

        <!-- LoadBalancer 负载均衡 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>
        <!-- OpenFeign 声明式http调用 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

        <!-- 数据库 MyBatis-Plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
            <version>${mybatis-plus.version}</version>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!-- Redis Redisson -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson</artifactId>
            <version>${redisson.version}</version>
        </dependency>

        <!-- 工具类 -->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>${hutool.version}</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct</artifactId>
            <version>${mapstruct.version}</version>
        </dependency>

        <!-- EasyExcel -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>${easyexcel.version}</version>
        </dependency>

        <!-- SpringDoc接口文档 -->
        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
            <version>${springdoc.version}</version>
        </dependency>

        <!-- 链路追踪 Skywalking 客户端(可选) -->
        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-trace</artifactId>
            <version>9.0.0</version>
            <scope>runtime</scope>
        </dependency>

        <!-- Actuator监控 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>

        <!-- 单元测试 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.11.0</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>UTF-8</encoding>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.mapstruct</groupId>
                            <artifactId>mapstruct-processor</artifactId>
                            <version>${mapstruct.version}</version>
                        </path>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>${lombok.version}</version>
                        </path>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok-mapstruct-binding</artifactId>
                            <version>0.2.0</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

SpringCloud Gateway 网关单独 pom(网关工程)

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.5</version>
        <relativePath/>
    </parent>

    <groupId>com.example</groupId>
    <artifactId>cloud-gateway</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>cloud-gateway</name>
    <description>SpringCloud Gateway网关</description>

    <properties>
        <java.version>17</java.version>
        <spring-cloud.version>2023.0.1</spring-cloud.version>
        <spring-cloud-alibaba.version>2022.0.0.0</spring-cloud-alibaba.version>
        <lombok.version>1.18.30</lombok.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <!-- Gateway 响应式网关,不要引入spring-boot-starter-web! -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
        <!-- Nacos 服务发现 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- Sentinel网关限流 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
相关推荐
2401_888859712 小时前
STM32H733 MPU、AXI、FMC学习
java·开发语言·stm32·spring
风骏时光牛马2 小时前
大模型底层架构与推理流程AI源码深度剖析
前端
CV工程师丁Sir3 小时前
ArkWeb 手记 04|DevTools 调试与缓存清理
java·spring·缓存·harmonyos
Sarvartha10 小时前
final 关键字
java·开发语言
2601_9520477910 小时前
单一策略深度教程:用轻易云把集成任务的报错实时推送到钉钉机器人
java·机器人·钉钉
Setsuna_F_Seiei11 小时前
前端转型 Agent 开发 06 之 Agent Memory 记忆系统(让 Agent 更智能,更懂你)
前端·agent·ai编程
数据狐(Datafox)11 小时前
淘宝图片搜索 API 落地实战:基于以图搜货搭建跨境电商选品系统
java·大数据·微服务
zhangzeyuaaa11 小时前
Ruby 多线程、GVL(GIL)与 Mutex 完全指南
开发语言·前端·ruby