Migrate from Spring to Quarkus
Everything You Need to Move to Quarkus
There are two paths from Spring to Quarkus. You can use compatibility libraries to run your existing Spring code on Quarkus with minimal changes — same annotations, same patterns, faster runtime. Or you can migrate to native Quarkus APIs (Jakarta REST, CDI, Panache) to get the most out of Quarkus. Either way, you don't have to do it all at once: start with compatibility, then migrate incrementally as it suits you. Both paths are supported by tooling and AI to help automate the work.
Compatibility Libraries
Spring APIs that work on Quarkus, out of the box
Quarkus provides compatibility extensions that let you reuse your Spring knowledge and code. Use familiar annotations like @RestController, @Autowired, and JpaRepository on a leaner, more productive runtime.
To get started: swap in the Quarkus Maven plugin and BOM, add the compatibility extensions you need, and update your property names in application.properties to their Quarkus equivalents.
- Spring Web —
@RestController,@RequestMapping,@GetMapping - Spring DI —
@Autowired,@Component,@Service - Spring Data JPA —
JpaRepository,CrudRepository, derived queries - Spring Data REST — automatic CRUD endpoints from repositories
- Spring Security —
@Secured,@PreAuthorize
- Spring Transactions —
@Transactional - Spring Cache —
@Cacheable,@CacheEvict - Spring Boot Properties —
@ConfigurationProperties - Spring Scheduled —
@Scheduledfor periodic tasks - Spring Cloud Config — read config from a Spring Cloud Config Server
These extensions cover the most widely used Spring APIs, but not all of them. If your application uses Spring features that aren't listed here, you'll need to migrate those parts to their Quarkus equivalents — the tooling and AI resources below can help with that.
Migrate
From analysis to automation
Tooling
Migration Toolkit for Applications (MTA)
Red Hat's rule-based analysis tool, built on the Konveyor open source project. MTA analyses your Spring Boot application and produces detailed reports highlighting what needs to change, with guidance on how to fix each issue. Available as a web console, CLI, Maven plugin, or IDE plugin.
OpenRewrite
The SpringBootToQuarkus composite recipe automates dependency swaps, annotation changes, and configuration migration. Run it via Maven, Gradle, or the CLI with no build changes needed.
Snowdrop Migration Guide
A structured guide with rules and decision flowcharts for migrating Spring Boot 3.x to Quarkus 3.x. Supports two paths: full Quarkus (Jakarta REST/CDI) or Spring compatibility (quarkus-spring-* extensions). Includes Konveyor analysis rules.
AI
AI-Assisted Migration
Modern AI coding assistants understand both Spring and Quarkus patterns well. They can help translate controllers, services, repositories, configuration files, build files, and tests — giving you a head start on each file you need to migrate. For a hands-on walkthrough of what a full migration looks like step by step, see Markus Eisele's guide on The Main Thread, or you can get started with a prompt like "Convert this Spring Boot app to Quarkus".
Konveyor AI (Kai)
Combines generative AI with static code analysis to assist migration directly in your IDE. Uses a RAG-based approach with historical migration data to provide context-specific guidance, without requiring model fine-tuning.
Quarkus Spring Migration Skill
To help ensure optimum results and efficiency when using LLMs, we've developed skills. The `quarkus-skills` migration skill guides an AI agent through a full Spring Boot to Quarkus migration — from reading the codebase to committing the result and opening a draft PR. It inspects your project and decides which modules apply, adapting to your chosen strategy: Spring Compatibility or Native Quarkus.
For more guidance, the free Quarkus for Spring Developers e-book explains the similarities and differences between the two frameworks, and helps you map Spring Boot concepts to their Quarkus equivalents.