Java 开发框架-当前三强功能对比

June 6, 2024

当前主流的开发框架

  • Spring,开发团队Vmware(Pivotal)
  • Quarkus,Redhat的JBoss团队开发
  • Vertx,Eclipse旗下开源项目,项目负责人受雇于Redhat

功能分类

分为以下几大部分:

  • core,核心功能
  • web,开发和访问Web服务
  • data,数据访问,包括关系数据库,缓存,Nosql等
  • net ,包括RPC, serializable, message, microservice等
  • ops,运维监控
  • security,安全相关
  • cloud,云计算部署
  • misc,其他开发功能

Spring

core:

ioc, aop

web:

spring web, spring reactive web, spring hateoas
graphql, spring session
rest repository
web serice, jersey
vaadin, hilla
thymeleaf, freemarker, mustache, groovy template
websocket

data:

spring data (jpa, jdbc, r2dbc, redia, mongodb, elasticsearch, cassandra, couchbase, neo4j)
mybatis, jooq
liquibase, flyway
db2, derby, h2, mariadb, mssql, mysql, oracle, postgresql
validation
spring cache abstraction

net:

config client, config server, vault, zookeeper, consul, eureka
gateway, openfeign, cloud loadbalacer
cloud bus, cloud stream
rabbitmq, kafka,activemq 5, artemis, pulsar,
kafka stream
rsocket, solace pubsub
mail sender
spring ai

ops:

resilience4j
Spring boot actuator, sentry
graphlite, newrelic, prometheus, ditribute tracing, wavefront, zipkin

security:

spring security, 
oauth2 client, authorization server, resource server
spring ldap, okta, embedded ldap server

cloud:

cloud bootstrap, function, task
azure (active directory, cosmos, key vault, storage)
google (messaging, storage)

misc:

spring integration, apache camel
spring batch
quartz, timefold solver
speing shell
spring rest doc, testcontainer, contract verifier

Quarkus

core:

cdi
yaml config
logging json

web:

Resteasy reactive, resteasy client
undertow, websocket
Qute
openapi, graphql(vertx, smallrye)

data:

jdbc driver, hibernate, jpa, panache, envers
hibernate reactive, hibernate search
narayana, jta
hibernate validator
infinispan, redis
cassandra, elasticsearch, mongodb, neo4j
flyway, liquibase

net:

gRPC
apache avro, jackson, jaxb, jsonb, jsonp
Reactive, Mutiny, Vertx
JMS, smallrye(reactive messaging), 
kafka client, kafka stream
Pulsar, RabbitMQ
apicrio registety, confluent schema registry
Stork, Consul
mailer, SMTP
langchain4j extension

ops:

smallrye(health, fault tolerance, metrics)
micrometer, info
opentelemetry
log management, Elasticsearch

security:

openid connect, Vault
smallrye jwt, Keycloak auth, Security WebAuthn
elytron security (JDBC, LDAP, Oauth)

cloud:

kubernate, openshift, kind, k8s client, k8s config, k8s service binding
operator sdk
funqy (aws, google, http, knative)
aws lambda, s3, kinesis, sns, function
google bigquery, firebase, spanner, pubsub, bigtable, function
azure function
container image(buildpack, docker, jib, openshift)

misc:

camel, Kogito
jacoco(code coverage)
awt
picocli(cli)
quartz, scheduler
spring extension(springboot props, spring cache, spring cloud config, spring data, spring web, spring security )
Tika

Vertx

core:

tcp client, tcp server, datagram, dns client
event bus, verticles, periodic and delayed action
file system
ha, clustering

web:

web client, graphql
template (thymeleaf, freemarker,...)
session storage (redis, cookie, infinispan)
openapi, web validation

data:

reactive client (pg, mysql, db2, mssql, oracle), jdbc
mongodb, redis, cassandra

net:

gRPC
rxjava, reactive streams,
service discovery, config
mqtt, AMQP, STOMP, RabbitMQ, kafka
consul client, mail, TCP eventbus
cluster manager (hazelcast, infinispan, ignite, zookeeper)
service proxies, sockJS, service factories(maven, http)

ops:

metrics (micrometer), health check, circuit breaker
tracing (zipkin, opentracing, opentelemetry)

security:

auth (JDBC, jwt, shiro, mongodb, properties, LDAP, webauthn, otp), oauth2

misc:

camel bridge
JUnit5
JSON schema
shell

简述

本文只罗列功能。

三个开发框架都是非常优秀的,根据软件应用的需求选择合适。 虽然技术路线有所不同(Quarkus在2.0之后已经融合的Vertx),但如果是相似的需求,开发方法也是相对应的。

另外还有很多优秀的技术框架:

现有的

  • 云原生:Micronaut, Helidon
  • Rest:Jersey, Resteasy
  • 界面:Vaadin, PrimeFaces
  • Web开发:Play

过去的

  • MVC:Struts, Spark
  • 界面(渲染方式):JSF, Wicket, Tapestry
  • 界面(语言编译方式):GWT
  • Rest:Dropwizard
  • 完整框架:Grails, Seam, Thorntail