τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
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
Στη συνέχεια, μπορείτε να χρησιμοποιήσετε το application-test.yml και το application-prod.yml για να δηλώσετε δύο μεταβλητές με την ίδια διαμόρφωση αλλά διαφορετικές τιμές.για παράδειγμα
application-test.yml:
mysql:
url: https://xx.test.com/mysql
application-prod.yml:
mysql:
url: https://xx.online.com/mysql
Στον κώδικα java, μπορείτε να χρησιμοποιήσετε αυτό το url δυναμικά:
@Value("${mysql.url}")
protected String mysqlUrl;
Τέλειος.
Λοιπόν, πώς να χρησιμοποιήσετε αυτόματα το αντίστοιχο αρχείο profile-specific.yml όταν το σύστημα εκτελείται;Παρακαλούμε δείτε παρακάτω
Ας δούμε πώς μεταβιβάζονται οι μεταβλητές περιβάλλοντος στο επίπεδο του έργου από το εξωτερικό δίκτυο.
Πρώτα απ 'όλα, ένα έργο java συσκευάζεται συνήθως από το docker. Λοιπόν, ας ξεκινήσουμε με το 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
Λέξεις κλειδιά,οικοδόμηση-arg , ορίστε μια παράμετρο, dc_env=test
ARG dc_env
...
RUN mvn -T 8 -DdisableRpm=true -pl '!assistant-web-manager' clean package -Dmaven.test.skip=true -P${dc_env}
Σημειώστε ότι -P σημαίνει ρύθμιση προφίλ
Η εντολή 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>
Παραπάνω, προστίθενται 2 μεταβλητές περιβάλλοντος.Για κάθε μεταβλητή ορίζονται ιδιότητες, δηλαδήπροφίλ.ενεργός
Πού μπορεί να χρησιμοποιηθεί αυτή η τιμή;
Χρησιμοποιήστε το στο κύριο αρχείο application.yml!
server:
profiles:
active: @profile.active@
Καθορίστε ποιο προφίλ θα χρησιμοποιηθεί με βάση την τιμή της μεταβλητής profile.active στο προηγούμενο βήμα.
Από τότε, οι μεταβλητές που ορίζονται από το πακέτο docker έχουν περάσει στο κύριο αρχείο yml. Σε αυτό το αρχείο, όποια τιμή και αν είναι ο server.profiles.active, ποια ρύθμιση παραμέτρων sub-yml θα χρησιμοποιηθεί. Για παράδειγμα, εάν είναι δοκιμή, θα φορτωθεί η διαμόρφωση του application-test.yml! ! !
Πρώτον, το Marven συγχρονίζεται πρώτα. Μετά το συγχρονισμό, ελέγξτε ένα περιβάλλον.
Στη συνέχεια, μεταγλωττίστε και συσκευάστε τοπικά και καθορίστε μεταβλητές περιβάλλοντος μέσω -P:
Τέλος, για εκτέλεση, κάντε κλικ στην επάνω δεξιά γωνία της παρακάτω εικόνας Θα εμφανιστεί ένα αναδυόμενο παράθυρο "Επεξεργασία διαμόρφωσης", συμπληρώστε τις αντίστοιχες μεταβλητές περιβάλλοντος, όπως η δοκιμή
Τέλος, μπορείτε να κάνετε κλικ στο Εκτέλεση!