Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 20361|Відповідь: 0

[Джерело] Java анотує різницю між @PostConstruct та статичними конструкторами

[Копіювати посилання]
Опубліковано 2021-7-30 10:48:11 | | | |
Нещодавно я натрапив на цю анотацію в @PostConstruct проєкту компанії і був здивований.

Огляд:

Java annotations@PostConstruct та детальні пояснення та приклади @PreDestroy
https://www.itsvse.com/thread-7386-1-1.html


Після консультацій підсумок виглядає так:

1. Починаючи зі специфікації Java EE5, використовуються дві анотації, що впливають на життєвий цикл сервлета — @PostConstruct і @PreDestroy — для модифікації методу нестатичного void(). Є два способи її написати:

@PostConstruct

public void someMethod(){}

або

public @PostConstruct void someMethod(){}

Метод @PostConstruct modified виконується, коли сервер завантажує сервлет, іСервер виконає його лише один раз。 PostConstruct виконується після конструктора та перед методом init(). Метод PreDestroy() виконується після того, як метод destroy() є інтелектуальним



Крім того, наказ конструктора, @Autowired і @PostConstruct навесні

Насправді, з буквального значення ін'єкції залежностей, ми можемо знати, що для інжекції об'єкта p у об'єкт A спочатку потрібно згенерувати об'єкти A і об'єкти p, перш ніж ін'єкція може бути виконана. Отже, якщо змінна елемента p анотується @Autowried класу A, то @Autowired ін'єкція відбувається після виконання методу побудови A.

Якщо ви хочете виконати деякі операції ініціалізації при генерації об'єкта, і ці операції залежать від ін'єкції залежностей, то ви не можете зробити це в конструкторі. Для цього можна використати метод @PostConstruct анотації для завершення ініціалізації, @PostConstruct анотовані методи автоматично викликатимуться після завершення ін'єкції залежностей.

Конструктор >> @Autowired >> @PostConstruct

Приклад:







Попередній:Docker встановлює Redis Visual Management Tool (redis-manager)
Наступний:Значення auto.offset.reset Кафки детально пояснюється
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com