Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 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