Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 20361|Válasz: 0

[Forrás] A Java megjegyzeti a @PostConstruct és a statikus konstruktorok közötti különbséget

[Linket másol]
Közzétéve: 2021-7-30 10:48:11 | | | |
Nemrég egy céges projektben találkoztam ezzel a jegyzettel@PostConstruct és teljesen értetlenül értem.

Szemle:

Java annotations@PostConstruct részletes magyarázatok és példák @PreDestroy
https://www.itsvse.com/thread-7386-1-1.html


Konzultáció után az összefoglaló a következő:

1. A Java EE5 specifikációtól kezdve két annotációt, amelyek befolyásolják a szervlet életciklusát, a @PostConstruct és a @PreDestroy, egy nem-statikus void() módszer módosítására. Kétféleképpen lehet megírni:

@PostConstruct

public void someMethod(){}

vagy

public @PostConstruct void someMethod(){}

A @PostConstruct módosított módszer akkor fut el, amikor a szerver betölti a szervet, ésA szerver csak egyszer hajtja végre。 A PostConstruct a konstruktor után, az init() metódus előtt történik. A PreDestroy() módszer a destroy() módszer után hajt végre



Ezen felül a Constructor, @Autowired és @PostConstruct sorrendje tavasszal

Valójában a függőségi injekció szó szerinti jelentéséből tudjuk, hogy ahhoz, hogy a p objektumot az A objektumba befecskendítsük, akkor először az A objektumot és a p objektumot kell generálni, mielőtt az injekció elvégezhető. Tehát ha egy p tagváltozót @Autowried A osztályban jegyzetelnek, akkor @Autowired injekció A konstrukciós módszerének végrehajtása után történik.

Ha szeretnél néhány inicializációs műveletet végrehajtani objektum generálásakor, és ezek az inicializációs műveletek függőségi injekciótól függenek, akkor ezt nem lehet megcsinálni a konstruktorban. Ehhez használhatsz egy módszert, @PostConstruct annotációkat használsz az inicializálás befejezéséhez, @PostConstruct az annotált metódusok automatikusan megszólalnak, miután a függőségi injekció befejeződött.

Konstruktor >> @Autowired >> @PostConstruct

Példa:







Előző:Docker telepíti a Redis Visual Management Tool-t (redis-manager)
Következő:A Kafka auto.offset.reset értéke részletesen ismertetve van
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com