Démarrage rapide

Connecte l'entité, le gestionnaire et l'observateur Swagger en se basant sur le code source du backend et vérifie les résultats de la première génération.


Configuration locale complète

WatchForMainRunSpring.java
java
@Configuration
@Profile("local")
public class WatchForMainRunSpring {

  private WatchForMainRun runner;

  @PostConstruct
  public void start() {
    var entityConfig = EntityFileWatcher.Config.builder()
        .rootPath("src.main.java")
        .entityPackage("com.example.entity")
        .fieldPackage("com.example.util.fields")
        .collectionNamePackage("com.example.util")
        .build();

    var handlerConfig = HandlerGenerator.Config.builder()
        .rootPath("src.main.java")
        .routerPackage("com.example.web.router")
        .handlerOutputDir("src.main.java.com.example.web.handler")
        .addAutoImport(ReactiveMongoDsl.class)
        .addAutoImport(ResponseWrapper.class)
        .addStaticAutoImport(
            HandlerGenerator.StaticImportSpec.of(ResponseWrapper.class, "response")
        )
        .addStaticAutoImport(
            HandlerGenerator.StaticImportSpec.of(FieldsPair.class, "pair")
        )
        .build();

    var swaggerConfig = SwaggerJsonFileWatcher.Config.builder()
        .watchDirectory("src/main/java")
        .swaggerOutputFile("src/main/resources/static/swagger.json")
        .build();

    runner = new WatchForMainRun(
        WatchForMainRun.Config.builder()
            .debounceMillis(400)
            .entityConfig(entityConfig)
            .handlerConfig(handlerConfig)
            .swaggerConfig(swaggerConfig)
            .build()
    );

    try {
      runner.start();
    } catch (Exception e) {
      throw new IllegalStateException("Failed to start development watchers", e);
    }
  }

  @PreDestroy
  public void stop() {
    if (runner != null) runner.stop();
  }
}

Détection de la première exécution et des modifications

start() crée une instance de watcher et exécute le premier passage de génération, puis s'abonne à l'événement de changement de source. Plusieurs événements de fichiers sont regroupés et régénérés selon debounceMillis.

Document suivant

© 2026 Byeolnaerim. Tous droits réservés.PrésentationPolitique de confidentialité