Πρόσφατα, όταν χρησιμοποιούσα τον ακροατή, αντιμετώπισα το πρόβλημα ότι δεν ήταν δυνατή η έγχυση ελατηρίου, ο κώδικας είναι ο εξής, αυτή η εργασία είναι πάντα μηδενική, το πακέτο προφανώς έχει σκουπιστεί, αλλά δεν μπορεί να εγχυθεί.
Ο λόγος είναι ο εξής: ο ακροατής Listener δεν μπορεί να εγχύσει το φασόλι χρησιμοποιώντας το @Resource του δοχείου Spring ή τη μέθοδο @Autowired σχολιασμού, επειδή, στο κοντέινερ του διακομιστή ιστού,Ούτε το Servlet, ούτε το Filter, ούτε το Listener διαχειρίζονται από κοντέινερ Spring,Επομένως, δεν μπορούμε να χρησιμοποιήσουμε απευθείας τη μέθοδο σχολιασμού Spring σε αυτές τις για να εισάγουμε τα αντικείμενα που χρειαζόμαστε。 Εδώ, ολόκληρος ο κύκλος ζωής του servlet χειρίζεται το δοχείο servlet. Εάν το τοποθετήσετε σε ένα κοντέινερ Spring για να το δημιουργήσετε, το αντικείμενο servlet μπορεί να δημιουργηθεί από το κοντέινερ Spring, αλλά το κοντέινερ servlet μπορεί να μην γνωρίζει ότι το servlet υπάρχει επειδή δεν βρίσκεται στο δικό του κοντέινερ. Επομένως, η διαχείριση του servlet γίνεται από τον διακομιστή ιστού και όχι από την άνοιξη.
Κάντε τις ακόλουθες τροποποιήσεις:
Βγαλμένο από το πλαίσιο της άνοιξης, έλυσε τέλεια το πρόβλημα.
|