Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 25865|Απάντηση: 0

[Πηγή] Το Spring Boot διαβάζει (application.yml) την τιμή του αρχείου διαμόρφωσης

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 7/1/2019 3:37:14 μ.μ. | | | |
Πρώτα application.yml προφίλ διαμόρφωσης έχει ως εξής:



Το έργο Maven pom.xml προσθέσει πακέτα:




Δημιουργήστε ένα νέο αντιστοιχισμένο αντικείμενο με τον ακόλουθο κώδικα:

Ο τύπος συμβολοσειράς πρέπει να χρειάζεται έναν ρυθμιστή για να λάβει τιμές ιδιοτήτων. Δεν απαιτούνται χάρτες, συλλογές και πίνακες

Χρησιμοποιήστε @Autowired σχολιασμούς για αυτόματη ένεση, όπως φαίνεται στην παρακάτω εικόνα:



Το esConfig εξάγει πάντα null, έψαχνε για λύση για μεγάλο χρονικό διάστημα, αλλά απέτυχε, θα υπάρχει μια λύση παρακάτω.

Ας δημιουργήσουμε ένα νέο χειριστήριο, ο κωδικός είναι ο εξής:

Η έγχυση είναι επιτυχής και οι τιμές του αρχείου διαμόρφωσης yml λαμβάνονται κανονικά, ως εξής:



Οι λόγοι για τους οποίους το EsClient δεν μπορεί να εγχυθεί με επιτυχία είναι οι εξής:

Καλέστε μια συνάρτηση αυτής της κλάσης στον κατασκευαστή και η μεταβλητή του @Autowired αυτής της κλάσης χρησιμοποιείται σε αυτή τη συνάρτηση.

Σκέφτηκα λοιπόν ότι μπορεί να πάει στραβά. Επειδή @Autowired πρέπει να περιμένει να κατασκευαστεί η κλάση για να μπορέσει να οριστεί από εξωτερικές αναφορές. Επομένως, ο χρόνος έγχυσης του @Autowired πρέπει να είναι μεταγενέστερος από τον χρόνο εκτέλεσης του κατασκευαστή.
Λύση:

Η Spring Team συνιστά «Χρησιμοποιείτε πάντα έγχυση εξάρτησης με βάση τον κατασκευαστή στα φασόλια σας. Να χρησιμοποιείτε πάντα ισχυρισμούς για υποχρεωτικές εξαρτήσεις".

Μετάφραση:

Η Spring προτείνει «Πάντα να καθιερώνετε έγχυση εξάρτησης με κατασκευαστές στο φασόλι σας. να χρησιμοποιείτε πάντα ισχυρισμούς για να επιβάλλετε εξαρτήσεις".


Πρωτότυπη γραφή:

Τροποποιημένη γραφή:



ΥΓ: Η σειρά αρχικοποίησης των μεταβλητών Java είναι: στατικές μεταβλητές ή μπλοκ στατικών δηλώσεων – > μεταβλητές στιγμιότυπου ή μπλοκ δηλώσεων αρχικοποίησης – >μέθοδος κατασκευής – >@Autowired

Γιατί λοιπόν να προσθέσετε τον τελικό τύπο στη μεταβλητή μέλους;

Υπάρχει μια εξήγηση στο Διαδίκτυο ως εξής: Το εύρος του προεπιλεγμένου φασολιού στη διαμόρφωση ελατηρίου είναι μονότονο, το οποίο υπάρχει πάντα μετά την εκκίνηση. Δηλώστε ότι το αντικείμενο του φασολιού θα δημιουργηθεί δυναμικά ορίζοντας την ιδιότητα πεδίου σε πρωτότυπο. Ωστόσο, εάν η ίδια η υπηρεσία σας είναι singleton, η ένεση εκτελείται μόνο μία φορά.

@Autowired από μόνη της είναι μια λειτουργία singleton, θα εκτελεστεί μόνο μία φορά κατά την εκκίνηση του προγράμματος και δεν θα αρχικοποιηθεί δεύτερη φορά ακόμα κι αν δεν ορίζει τελικό, επομένως αυτό το τελικό δεν έχει νόημα.

Μπορεί να είναι για να αποτραπεί η επανεκτέλεση του κατασκευαστή ενώ εκτελείται το πρόγραμμα.

Ή ίσως είναι πιο εύκολο να το καταλάβετε, καθώς και το τελικό θα αρχικοποιηθεί μόνο μία φορά όταν ξεκινήσει το πρόγραμμα.






Προηγούμενος:Spring Boot+maven για γρήγορη κατασκευή έργων
Επόμενος:2018 Κυκλοφόρησαν αναμνηστικά Διαδικτύου της Κίνας
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com