La domanda breve:Le proprietà della riga di comando spring-boot sono disponibili quando si utilizza spring-boot: run?
Come è possibile configurare i profili di ambiente o anche solo un nome di file di configurazione alternativo per spring-boot: eseguire?
La versione lunga:
Sì, ho letto il doc. http://docs.spring.io/spring-boot/docs/current/reference/html/index.html
Ho le mie impostazioni di configurazione di applicazione in src/main/resources/application-mysql.properties:
# Specify the DBMS
spring.jpa.database = MYSQL
# Other Mysql config properties
spring.jpa.hibernate.ddl-auto=create
v'è un corrispondente application-hsql.properties, che contiene lo stesso insieme di opzioni di configurazione per HSQL. ci sono application.poperties
C'è una corrispondente import.sql:
insert into users(name, email) values ('User One', '[email protected]')
insert into users(name, email) values ('Two User', '[email protected]')
L'unità esistono prove solo per verificare la presenza di questi utenti nel repository.
Credo che sia vero che ogni volta che il test viene eseguito utilizzando la configurazione MySql, tali righe vengono aggiunte alla tabella utenti. Quando il test viene eseguito con hsql, mysql db non deve essere modificato. Sto facendo cadere manualmente la tabella degli utenti tra le esecuzioni, perché voglio vedere manualmente quando esiste.
1) Se corro prova mvn, i test usano il db configurato:
mvn -Dspring.profiles.active=mysql clean test
Produce mysql righe del database e
mvn -Dspring.profiles.active=hsql clean test
non lo fa.
2) Se faccio un pacchetto, e quindi eseguire il file jar risultante, sono in grado di specificare un nome di file di configurazione:
java -jar -Dspring.profiles.active=mysql ./target/app.jar
3) Se corro con molla-boot: corsa, solo proprietà in application.properties (che non esiste in questo scenario di test) vengono scoperte.
mvn -Dspring.profiles.active=mysql clean spring-boot:run
Cosa fa il boot a molla: eseguire in modo diverso il lancio rispetto ai test di unità in esecuzione e il lancio del vaso? Il db config è un esempio, ma in teoria mi piacerebbe essere in grado di specificare un insieme di configurazioni di dev quando l'applicazione viene eseguita localmente rispetto a una configurazione di produzione.