一、当前主流的开发框架
- 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),但如果是相似的需求,开发方法也是相对应的。
国内开发者受互联网开发团队的影响,很多人只知道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