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

一、当前主流的开发框架

  1. Spring,开发团队Vmware(Pivotal)
  2. Quarkus,Redhat的JBoss团队开发
  3. 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),但如果是相似的需求,开发方法也是相对应的。

国内开发者受互联网开发团队的影响,很多人只知道Spring,确切的说只知道Spring的经典用法。

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

现有的

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

过去的

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

原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/90863.html

Like (0)
guozi的头像guozi
Previous 2024年6月7日 上午11:24
Next 2024年6月7日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注