Ich glaube, ich missverstanden Spring Boot-Profile-Funktionalität. Ich habe zwei separate Startklassen (ApplicationLocal und ApplicationProduction) in meiner Feder Boot-Anwendung, Diese Klassen wie dieseWie Spring Boot Startup-Klasse basierend auf aktiven Federprofil zu wechseln
@SpringBootApplication
@EnableSwagger2
@Import(value={Config.class})
@ComponentScan(basePackages={"com.abc.*"})
@Profile("local")
public class ApplicationLocal extends SpringBootServletInitializer {
//
@SpringBootApplication
@EnableSwagger2
@Import(value={Config.class})
@ComponentScan(basePackages={"com.abc.*"})
@Profile("production")
public class ApplicationProduction extends SpringBootServletInitializer {
//
kommentiert und ich möchte, dass die entsprechende Startklasse von Spring-Boot zur Laufzeit je nach abgeholt werden der Wert von -Despring.profiles.active jvm argument. Aber nicht für mich arbeiten, es sei denn ich wie dies in Abschnitt in pom.xml Start-Klasse erwähnen ..
<properties>
<start-class>com.abc.web.service.ApplicationLocal</start-class>
</properties>
Wenn ich die Start-Klasse in pom.xml nicht erwähnen, dann erhalte ich die folgende Fehler: (i laufen die App wie folgt
mvn spring-boot:run -Drun.jvmArguments=" -Dspring.profiles.active=local"
und ich bekomme die folgenden Fehler
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.3.3.RELEASE:run (default-cli) on project payee-list-ws: Execution default-cli of goal org.springframework.boot:spring-boot-maven-plugin:1.3.3.RELEASE:run failed: Unable to find a single main class from the following candidates [com.abc.web.service.ApplicationProduction, com.abc.web.service.ApplicationLocal] -> [Help 1]
Gibt es wirklich eine Notwendigkeit, verschiedene Klassen zu haben? Gibt es so viele verschiedene Geschäftslogiken für jedes Profil? Oder gibt es nur einige Konfigurationsunterschiede wie verschiedene Datenbankverbindungen oder so? – Patrick