Κοινή χρήση τεχνολογίας

Πώς να ρυθμίσετε διαφορετικές μεταβλητές περιβάλλοντος και αρχές για έργα java

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Πώς να διαμορφώσετε διαφορετικά προφίλ

Πρώτα απ 'όλα, ένα έργο Java απαιτεί διαφορετικές διαμορφώσεις περιβάλλοντος Κατά τη συσκευασία, οι αντίστοιχες διαμορφώσεις χρησιμοποιούνται αυτόματα. Λοιπόν, πώς να το πετύχετε;

Δημιουργήστε ή προσθέστε ένα αρχείο application.yml στον κατάλογο src/main/resources του έργου Spring Boot. Αυτό είναι όπου το Spring Boot αναζητά αρχεία διαμόρφωσης από προεπιλογή. Αυτό το αρχείο μπορεί να προσθέσει κοινές διαμορφώσεις.

Στη συνέχεια, μπορείτε επίσης να δημιουργήσετε αρχεία όπως application-test.yml, application-prod.yml, κ.λπ. στον ίδιο κατάλογο, το Spring Boot θα αναγνωρίσει αυτόματα αυτά τα αρχεία διαμόρφωσης για συγκεκριμένο προφίλ. Μπορείτε να ορίσετε παραμέτρους για διαφορετικά περιβάλλοντα σε αυτά τα αρχεία, όπως διευθύνσεις βάσης δεδομένων, διευθύνσεις cache redis κ.λπ.
Δηλαδή, στον κατάλογο src/main/resources, μπορεί να υπάρχουν πολλά αρχεία όπως αυτό:

application.yml
application-prod.yml
application-test.yml
  • 1
  • 2
  • 3

Στη συνέχεια, μπορείτε να χρησιμοποιήσετε το application-test.yml και το application-prod.yml για να δηλώσετε δύο μεταβλητές με την ίδια διαμόρφωση αλλά διαφορετικές τιμές.για παράδειγμα
application-test.yml:

mysql:
  url: https://xx.test.com/mysql
  • 1
  • 2

application-prod.yml:

mysql:
  url: https://xx.online.com/mysql
  • 1
  • 2

Στον κώδικα java, μπορείτε να χρησιμοποιήσετε αυτό το url δυναμικά:

    @Value("${mysql.url}")
    protected String mysqlUrl;
  • 1
  • 2

Τέλειος.

Λοιπόν, πώς να χρησιμοποιήσετε αυτόματα το αντίστοιχο αρχείο profile-specific.yml όταν το σύστημα εκτελείται;Παρακαλούμε δείτε παρακάτω

Η αρχή της αυτόματης εναλλαγής προφίλ

Ας δούμε πώς μεταβιβάζονται οι μεταβλητές περιβάλλοντος στο επίπεδο του έργου από το εξωτερικό δίκτυο.
Πρώτα απ 'όλα, ένα έργο java συσκευάζεται συνήθως από το docker. Λοιπόν, ας ξεκινήσουμε με το docker:

  1. Εντολή συσκευασίας Docker, με παραμέτρους περιβάλλοντος:
docker build -f assistant-web-api/qke/Dockerfile -t docker-registry.qiyi.virtual/mbd-ai/assistant-web-api-test:$tag . --build-arg dc_env=test
  • 1

Λέξεις κλειδιά,οικοδόμηση-arg , ορίστε μια παράμετρο, dc_env=test

  1. αρχείο Docker, δηλώστε στοdc_env, και χρησιμοποιείται για την εντολή mvn
ARG dc_env
...
RUN mvn -T 8 -DdisableRpm=true -pl '!assistant-web-manager' clean package -Dmaven.test.skip=true -P${dc_env}
  • 1
  • 2
  • 3

Σημειώστε ότι -P σημαίνει ρύθμιση προφίλ

  1. pom.xml, διαμορφώστε διαφορετικά περιβάλλοντα

Η εντολή mvn στο προηγούμενο βήμα προστέθηκε -P Πού χρησιμοποιείται; Φυσικά είναι στο αρχείο ρυθμίσεων marven, που είναι pom.xml.

<profiles>
        <profile>
            <id>test</id>
            <properties>
                <profile.active>test</profile.active>
                <log.env>test</log.env>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <profile.active>prod</profile.active>
                <log.env>prod</log.env>
            </properties>
        </profile>
    </profiles>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

Παραπάνω, προστίθενται 2 μεταβλητές περιβάλλοντος.Για κάθε μεταβλητή ορίζονται ιδιότητες, δηλαδήπροφίλ.ενεργός
Πού μπορεί να χρησιμοποιηθεί αυτή η τιμή;

Χρησιμοποιήστε το στο κύριο αρχείο application.yml!

server:
  profiles:
    active: @profile.active@
  • 1
  • 2
  • 3

Καθορίστε ποιο προφίλ θα χρησιμοποιηθεί με βάση την τιμή της μεταβλητής profile.active στο προηγούμενο βήμα.

Από τότε, οι μεταβλητές που ορίζονται από το πακέτο docker έχουν περάσει στο κύριο αρχείο yml. Σε αυτό το αρχείο, όποια τιμή και αν είναι ο server.profiles.active, ποια ρύθμιση παραμέτρων sub-yml θα χρησιμοποιηθεί. Για παράδειγμα, εάν είναι δοκιμή, θα φορτωθεί η διαμόρφωση του application-test.yml! ! !

Πώς να αλλάξετε περιβάλλοντα σε περιβάλλον ανάπτυξης

  1. Πρώτον, το Marven συγχρονίζεται πρώτα. Μετά το συγχρονισμό, ελέγξτε ένα περιβάλλον.
    Εισαγάγετε την περιγραφή της εικόνας εδώ

  2. Στη συνέχεια, μεταγλωττίστε και συσκευάστε τοπικά και καθορίστε μεταβλητές περιβάλλοντος μέσω -P:
    Εισαγάγετε την περιγραφή της εικόνας εδώ

  3. Τέλος, για εκτέλεση, κάντε κλικ στην επάνω δεξιά γωνία της παρακάτω εικόνας Θα εμφανιστεί ένα αναδυόμενο παράθυρο "Επεξεργασία διαμόρφωσης", συμπληρώστε τις αντίστοιχες μεταβλητές περιβάλλοντος, όπως η δοκιμή
    Εισαγάγετε την περιγραφή της εικόνας εδώ

  4. Τέλος, μπορείτε να κάνετε κλικ στο Εκτέλεση!