From Spring Boot

Migrate Spring Boot applications to qqq

Migrating from Spring Boot

This guide helps you migrate existing Spring Boot applications to qqq.

Why Migrate?

  • Less Boilerplate - qqq generates CRUD, UI, and API
  • Faster Development - Focus on business logic
  • Built-in Features - Auth, audit, reporting included
  • Consistent Patterns - Standard approach across projects
  • Compatibility

    qqq runs on the JVM and can coexist with Spring components during migration.

    Migration Steps

    1. Add qqq Dependencies

    XML
    <dependency>
        <groupId>io.qrun</groupId>
        <artifactId>qqq-backend-core</artifactId>
        <version>${qqq.version}</version>
    </dependency>

    2. Convert Entities

    Spring Entity:

    Java
    @Entity
    @Table(name = "orders")
    public class Order {
        @Id @GeneratedValue
        private Long id;
        private String status;
        // getters/setters
    }

    qqq Table:

    Java
    @QTableMetaData(name = "order")
    public class OrderTable implements TableMetaDataProducer {
        @Override
        public QTableMetaData produce(QInstance qInstance) {
            return new QTableMetaData()
                .withName("order")
                .withField(new QFieldMetaData("id", QFieldType.LONG))
                .withField(new QFieldMetaData("status", QFieldType.STRING));
        }
    }

    3. Convert Services to Processes

    Spring services with business logic become qqq processes.

    4. Migrate Controllers

    qqq auto-generates REST APIs. Custom endpoints become process APIs.

    Incremental Migration

    Migrate table by table:

    1. Start with simple tables

    2. Add relationships gradually

    3. Convert services to processes

    4. Remove Spring controllers as qqq APIs replace them

    Keeping Spring Components

    Some Spring components can remain:

  • Custom integrations
  • Legacy APIs (during transition)
  • Specialized libraries
  • Powered by qqq