Saltar al contenido

Spring @PostConstruct vs. método de inicio attribute

Luego de indagar en varios repositorios y páginas webs al concluir hemos descubierto la respuesta que te mostraremos a continuación.

Solución:

No, prácticamente no creo que haya ninguna diferencia, pero hay prioridades en la forma en que funcionan. @PostConstruct, init-method son BeanPostProcessors.

  1. @PostConstruct es una anotación JSR-250 mientras init-method es la forma de Spring de tener un método de inicialización.
  2. Si tienes un @PostConstruct método, este se llamará primero antes de que se llamen los métodos de inicialización.
  3. Si su bean implementa InitializingBean y anula afterPropertiesSet primero @PostConstruct se llama, entonces el afterPropertiesSet y entonces init-method.

Para obtener más información, puede consultar la documentación de referencia de Spring.

Antes de las especificaciones JSR 250, se prefería el uso del método init en xml, ya que desacopla las clases Java (beans) de cualquier clase/anotación específica de Spring. Por lo tanto, si está creando una biblioteca que no necesita depender de los beans de infraestructura de Spring entonces se prefirió el uso del método init. Durante el método de creación, puede especificar el método que debe llamarse como método de inicialización.

Ahora, con la introducción de las especificaciones JSR 250 en Java EE y la compatibilidad con Spring de estas anotaciones, la dependencia de Spring Framework se ha reducido hasta cierto punto.

Pero tengo que admitir que la adición de estas cosas aumenta la legibilidad del código. Así que hay pros y contras en ambos enfoques.

No hay diferencia real. Depende de cómo prefiera configurar su sistema, y ​​eso es una cuestión de elección personal. Yo mismo, prefiero usar @PostConstruct anotaciones para mi propio código (ya que el bean solo se configura correctamente después de llamar al método) y uso init-method al crear instancias de beans de bibliotecas que no son compatibles con Spring (¡no se pueden aplicar anotaciones allí, por supuesto!) Pero puedo entender totalmente a las personas que quieren hacerlo todo de una forma u otra.

@postconstruct no es parte de la primavera. Es parte del paquete javax. Ambos son iguales. usando el método init, necesitamos agregarlo en el archivo xml. Si usa @postconstruct, no es necesario agregar xml. Consulte el siguiente artículo.

http://answersz.com/spring-postconstruct-and-predestroy/

Al final de la página puedes encontrar los comentarios de otros programadores, tú asimismo puedes insertar el tuyo si te apetece.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *