Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 20361|Resposta: 0

[Fonte] O Java anota a diferença entre construtores @PostConstruct e estáticos

[Copiar link]
Postado em 2021-7-30 10:48:11 | | | |
Recentemente, me deparei com essa anotação em um projeto da empresa @PostConstruct e fiquei confuso.

Revisar:

Java annotations@PostConstruct explicações detalhadas e exemplos de @PreDestroy
https://www.itsvse.com/thread-7386-1-1.html


Após a consulta, o resumo é o seguinte:

1. A partir da especificação Java EE5, duas anotações que afetam o ciclo de vida do servlet, @PostConstruct e @PreDestroy, são usadas para modificar um método void() não estático. Existem duas formas de escrevê-lo:

@PostConstruct

public void someMethod(){}

ou

public @PostConstruct void someMethod(){}

O método modificado @PostConstruct roda quando o servidor carrega o servlet, eEle será executado apenas uma vez pelo servidor。 O PostConstruct é executado após o construtor e antes do método init(). O método PreDestroy() é executado após o método destroy() ser intelectual



Além disso, a ordem de Constructor, @Autowired e @PostConstruct na primavera

De fato, pelo significado literal da injeção de dependência, podemos saber que, para injetar o objeto p no objeto A, então o objeto A e o objeto p devem primeiro ser gerados antes que a injeção possa ser realizada. Assim, se uma variável membro p for anotada @Autowried na classe A, @Autowired injeção ocorre após a execução do método de construção de A.

Se você quiser completar algumas operações de inicialização ao gerar um objeto, e essas operações dependem da injeção de dependência, então não pode fazer isso no construtor. Para isso, você pode usar um método @PostConstruct anotações para completar a inicialização, @PostConstruct métodos anotados serão automaticamente chamados após a conclusão da injeção de dependência.

Construtor >> @Autowired >> @PostConstruct

Exemplo:







Anterior:Docker instala a ferramenta de gerenciamento visual Redis (redis-manager)
Próximo:O valor auto.offset.reset do Kafka é explicado em detalhes
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com