For nylig stødte jeg på denne annotation i et firmaprojekt @PostConstruct og jeg var forvirret.
Anmeldelse:
Efter konsultation er resuméet som følger:
1. Med udgangspunkt i Java EE5-specifikationen bruges to annotationer, der påvirker servletens livscyklus, @PostConstruct og @PreDestroy, til at modificere en ikke-statisk void()-metode. Der er to måder at skrive det på:
@PostConstruct
public void someMethod(){}
eller
public @PostConstruct void someMethod(){}
Metoden @PostConstruct modificerede kører, når serveren indlæser servleten, ogServeren udfører kun én gang。 PostConstruct udføres efter konstruktøren og før init()-metoden. PreDestroy()-metoden udføres efter destroy()-metoden er intellektuel
Derudover rækkefølgen Constructor, @Autowired og @PostConstruct om foråret
Faktisk kan vi ud fra den bogstavelige betydning af afhængighedsinjektion vide, at for at injicere objekt p i objekt A, skal objekt A og objekt p først genereres, før injektionen kan udføres. Så hvis en medlemsvariabel p annoteres @Autowried i klasse A, sker @Autowired injektion efter A's konstruktionsmetode er udført.
Hvis du vil gennemføre nogle initialiseringsoperationer, når du genererer et objekt, og disse initialiseringsoperationer afhænger af afhængighedsinjektion, så kan du ikke gøre det i konstruktøren. For at gøre dette kan du bruge en metode @PostConstruct annoteringer til at fuldføre initialiseringen, @PostConstruct annoterede metoder automatisk kaldes, når afhængighedsinjektionen er afsluttet.
Konstruktør >> @Autowired >> @PostConstruct
Eksempel:
|