Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 20361|Odpověď: 0

[Zdroj] Java anotuje rozdíl mezi @PostConstruct a statickými konstruktory

[Kopírovat odkaz]
Zveřejněno 30. 7. 2021 10:48:11 | | | |
Nedávno jsem na tuto poznámku narazil v @PostConstruct firemního projektu a byl jsem zmatený.

Přezkoumání:

Java annotations@PostConstruct a podrobná vysvětlení a příklady @PreDestroy
https://www.itsvse.com/thread-7386-1-1.html


Po konzultaci je shrnutí následující:

1. Od specifikace Java EE5 se používají dvě anotace, které ovlivňují životní cyklus servletu, @PostConstruct a @PreDestroy, k úpravě metody nestatického void(). Existují dva způsoby, jak to napsat:

@PostConstruct

public void someMethod(){}

nebo

public @PostConstruct void someMethod(){}

Metoda @PostConstruct modified běží, když server načte servlet, aServer to vykoná pouze jednou。 PostConstruct se provádí po konstruktoru a před metodou init(). Metoda PreDestroy() se provádí po metodě destroy() je intelektuální



Kromě toho na jaře byl uveden řád konstruktérů, @Autowired a @PostConstruct

Ve skutečnosti z doslovného významu injekce závislostí víme, že k injekci objektu p do objektu A musí být nejprve vygenerovány objekty A a objekt p, než může být injekce provedena. Pokud je tedy proměnná člena p anotována @Autowried třídy A, pak @Autowired injekce nastává až po provedení konstrukční metody A.

Pokud chcete při generování objektu dokončit inicializační operace a tyto operace závisí na dependency injection, pak to ve konstruktoru nemůžete provést. K tomu můžete použít metodu @PostConstruct anotace k dokončení inicializace, @PostConstruct anotované metody budou automaticky volány po dokončení injekce závislostí.

Konstruktor >> @Autowired >> @PostConstruct

Příklad:







Předchozí:Docker Installs Redis Visual Management Tool (redis-manager)
Další:Podrobně vysvětlena je Kafka pro hodnotu auto.offset.reset
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com