← Java
Java: Libraries and tooling
Building blocks used in Java projects: templating, data access, tests, build and operations.
Web, API and messaging
- Spring MVC Servlet-based controllers and REST endpoints
- Spring WebFlux Reactive endpoints with Project Reactor
- Jersey / RESTEasy JAX-RS implementations for REST APIs
- Spring GraphQL GraphQL APIs with Spring
- gRPC Binary service-to-service communication
- Spring Security Authentication, OAuth 2.0, OpenID Connect
- Spring Cloud Configuration, gateway, resilience for distributed systems
- Apache Camel Integration patterns for interfaces of every kind
- Spring Integration Enterprise integration patterns in Spring
- Apache Kafka Event streaming, connected through Spring Kafka
- RabbitMQ / JMS Message queues
- Spring Batch Processing large data sets in jobs
- Resilience4j Circuit breaker, retry, rate limiting
Templating and user interfaces
- Thymeleaf Server-side HTML templates
- JTE Fast, type-safe templates
- FreeMarker Proven template engine
- Vaadin User interfaces entirely in Java, with Flow and Hilla
- htmx Interactive pages without a dedicated frontend framework
Persistence
- Hibernate ORM The leading ORM and the reference for Jakarta Persistence
- Spring Data JPA Repositories without boilerplate
- jOOQ Type-safe SQL generated from the database schema
- MyBatis SQL mapping with full control over queries
- JDBI Lean access to JDBC
- Flyway Versioned database migrations
- Liquibase Database changes as a changelog
- HikariCP The standard connection pool
- Spring Data Uniform access to MongoDB, Redis, Elasticsearch
Testing and code quality
- JUnit 5 The standard test framework
- Mockito Mock objects
- AssertJ Fluent assertions
- Testcontainers Real databases and services in tests
- REST Assured Tests for HTTP APIs
- WireMock Simulated external interfaces
- Playwright / Selenium Browser tests
- Cucumber Behaviour-driven tests
- ArchUnit Architecture rules as tests
- Gatling / JMeter Load testing
- Checkstyle / SpotBugs Static analysis
- SonarQube Quality metrics in the build
Build and tooling
- Maven Build and dependencies, convention-driven
- Gradle Flexible build system, also with a Kotlin DSL
- GraalVM Native Image Ahead-of-time binaries with short startup
- Jackson JSON processing
- MapStruct Generated mappers between objects
- Lombok Less boilerplate
- Micrometer Metrics and tracing
More on Java
A project with Java?
New development, replacement or extending an existing system: tell us briefly what it is about. We will tell you what works in practice.