wake-up-neo.net

Spring Boot: So verwenden Sie mehrere Yml-Dateien

In Spring Boot weiß ich, dass ich application.properties durch application.yml ersetzen und das YAML-Format verwenden kann Allerdings wird meine application.yml überfüllt, sodass ich sie etwas aufteilen muss. Wie kann ich das machen? Ich möchte so etwas machen:

...
@Configuration
@EnableAutoConfiguration
@EnableWebMvc
@EnableScheduling
@PropertySource({"classpath:application.yml", "classpath:scheduling.yml"})
public class ApplicationConfig {
...
15
Johan Frick

@PropertySource unterstützt YAML nicht (wahrscheinlich in Spring 4.1). Sie können spring.config.location oder spring.config.name auf eine durch Kommas getrennte Liste setzen (z. B. als Systemeigenschaft oder Befehlszeilenargument).

Ich persönlich mag alle meine YAML an derselben Stelle (die Struktur hilft wirklich, sie visuell aufzuteilen, und Sie können Dokumente in der Datei verwenden, um sie weiter aufzuteilen). Das ist nur ein Geschmack, denke ich.

10
Dave Syer
  1. @PropertySource-Anmerkung entfernen, Sie brauchen sie nicht
  2. benennen Sie Ihren scheduling.yml in src/main/resources/application-scheduling.yml um
  3. in src/main/resources/application.yml Datei hinzufügen nächste Zeile: 

    spring.profiles.include: 'scheduling'

22

Sie können das aktive Profilkonzept in Ihrer Haupt-yaml-Datei verwenden. Zum Beispiel:

spring.profiles.active: test

das heißt, Sie sollten eine application-test.yml-Datei in Ihrem Ressourcenverzeichnis haben. Beachten Sie, dass aktive Profile Eigenschaften mit den gleichen Namen in Ihrer yaml-Hauptdatei überschreiben.

Weitere Informationen finden Sie unter: http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html

6
Jalal Sajadi

wenn ich viele Konfigurationen und/oder Umgebungen habe, mache ich das normalerweise:

$ cat src/main/resources/application.yml:
spring:
  profiles:
    include: >
      profile1,
      profile2,
      ...
      profileN

$ ls -lah src/main/resources/config:
drwxr-xr-x  4 mak  staff   136B Apr 16 23:58 .
drwxr-xr-x  6 mak  staff   204B Apr 17 01:54 ..
-rw-r--r--  1 mak  staff    60B Apr 16 23:58 application-profile1.yml
-rw-r--r--  1 mak  staff    62B Apr 16 23:16 application-profile2.yml
...
-rw-r--r--  1 mak  staff    50B Apr 16 23:16 application-profileN.yml
5

Angenommen, Ihre Anwendung benötigt 4 .yml-Dateien.

application.yml
application-dev.yml
application-uat.yml
application-prod.yml

und Sie müssen für jede Datei eine andere Einstellung festlegen.

Sie müssen lediglich Ihre Einstellung in einer geeigneten Umgebung wie dev, uat ot prod und den Einstellungen für application.yml-Datei vornehmen. 

  spring:  
    profiles:
       active: dev
    application: /* optional */
       name: Application Name 
0
Deva