В типичном цикле разработки Spark я могу написать обычную программу JVM (драйвер Spark) прямо в IDE. Моя программа может быть запущена / отладка / юнит-тестирование без развертывания ее в Spark.
Только после того, как я закончу программу, упаковал ее в JAR-файл и издаю команды для ее развертывания в Spark без перезапуска /прерывая саму искру. Искра знает о моей банке и может поднять ее. Функциональные возможности программы как на стадии разработки, так и на стадии развертывания абсолютно одинаковы.
Как это возможно? Могу ли я делать такие вещи, как в программе Spring Boot, где основная программа определяет некоторые @Entities и @Repositories и т. Д., А другие программы могут использовать / расширять эти классы автономно (в разработке), а такжевыступая в качестве плагина (в развертывании)?
Есть ли лучший способ, кроме этого подхода?