Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 16064|Отговор: 2

[Източник] Не може да се инжектира @Autowired в Listener

[Копирай линк]
Публикувано в 4.04.2019 г. 15:23:22 ч. | | | |
Напоследък, когато използвах слушателя, се сблъсках с проблема, че пружината не може да бъде инжектирана – кодът е следният, тази задача винаги е null, пакетът очевидно е изчистен, но не може да бъде инжектиран.

Причината е следната: слушателят на слушателя не може да инжектира зърното чрез @Resource на Spring контейнера или метода на @Autowired анотация, защото в уеб сървърния контейнер,Нито Servlet, нито Filter, нито Listener се управляват от Spring контейнериСледователно не можем директно да използваме метода на Spring анотация в тези класове, за да инжектираме нужните ни обекти。 Тук целият жизнен цикъл на сервлета се обработва от контейнера със сервлет. Ако го поставите в Spring контейнер, за да го създадете, обектът servlet може да бъде създаден от Spring контейнера, но контейнерът може да не знае, че сервлетът съществува, защото не е в собствен контейнер. Следователно сервлетът се управлява от уеб сървъра, а не от пружината.

Направете следните модификации:

Взето от контекста на пролетта, това реши проблема перфектно.


Springboot @Autowired не въвежда проблеми
https://www.itsvse.com/thread-6397-1-1.html
(Източник: Architect_Programmer)






Предишен:Как да показвате и скривате елементи чрез Bootstrap4
Следващ:Java annotations@PostConstruct и подробни обяснения и примери за @PreDestroy
 Хазяин| Публикувано в 4.04.2019 г. 15:54:53 ч. |
Дори ако зададеш слушателя на ентитета на @Component, JPA всъщност използва само инстанция на класа, а не управляван Spring bean. Затова получаваш NullPointerException. Акаунтът HistoryRepo винаги ще бъде празен.

https://stackoverflow.com/questi ... n-using-postpersist

Трикът за инжектиране на зависимости в безсъстояниени зърна е да се дефинират зависимости като "статични", създавайки setter метод, така че Spring да може да инжектира зависимости (да ги присвоява на статични зависимости).

Обявете зависимостта като статична.



Създай метод, така че Спринг да може да го инжектира.



Ресурси:https://stackoverflow.com/questi ... -jpa-entitylistener
 Хазяин| Публикувано в 4.04.2019 г. 16:03:23 ч. |
Моето решение е следното:


Ресурси:Входът към хиперлинк е видим.
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com