Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 20361|Respuesta: 0

[Fuente] Java anota la diferencia entre constructores @PostConstruct y estáticos

[Copiar enlace]
Publicado el 30-7-2021 10:48:11 | | | |
Recientemente, me encontré con esta anotación en un @PostConstruct de proyectos de empresa y me quedé desconcertado.

Revisión:

Java annotations@PostConstruct explicaciones detalladas y ejemplos de @PreDestroy
https://www.itsvse.com/thread-7386-1-1.html


Tras consultar, el resumen es el siguiente:

1. A partir de la especificación Java EE5, se utilizan dos anotaciones que afectan al ciclo de vida del servlet, @PostConstruct y @PreDestroy, para modificar un método void() no estático. Hay dos formas de escribirlo:

@PostConstruct

public void someMethod(){}

o

public @PostConstruct void someMethod(){}

El método modificado @PostConstruct se ejecuta cuando el servidor carga el servlet, ySolo se ejecutará una vez por el servidor。 PostConstruct se ejecuta después del constructor y antes del método init(). El método PreDestroy() se ejecuta después de que el método destroy() sea intelectual



Además, el orden de Constructor, @Autowired y @PostConstruct en primavera

De hecho, por el significado literal de inyección de dependencias, podemos saber que para inyectar el objeto p en el objeto A, primero deben generarse los objetos A y p antes de poder realizar la inyección. Así, si una variable miembro p está anotada @Autowried en clase A, entonces @Autowired inyección ocurre después de ejecutar el método de construcción de A.

Si quieres completar algunas operaciones de inicialización al generar un objeto, y estas operaciones dependen de la inyección de dependencias, entonces no puedes hacerlo en el constructor. Para ello, puedes usar un método @PostConstruct anotaciones para completar la inicialización, @PostConstruct los métodos anotados se llamarán automáticamente una vez completada la inyección de dependencias.

Constructor >> @Autowired >> @PostConstruct

Ejemplo:







Anterior:Docker instala la herramienta de gestión visual Redis (redis-manager)
Próximo:El valor auto.offset.reset de Kafka se explica en detalle
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com