traduccion - Spring @PostConstruct vs. atributo init-method
spring tutorial (3)
@postconstruct no es parte de la primavera. Es parte del paquete javax. Ambos son lo mismo. usando init-method necesitamos agregarlo en el archivo xml. Si usas @postconstruct no es necesario agregar xml. Mira el artículo a continuación.
¿Hay alguna diferencia entre utilizar la anotación @PostConstruct
y declarar el mismo método que init-method
en la configuración Spring XML?
No hay diferencia real. Se trata de cómo prefieres configurar tu sistema, y esa es una cuestión de elección personal. Yo prefiero usar @PostConstruct
anotaciones @PostConstruct
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 sean Spring-aware (no se pueden aplicar anotaciones allí , por supuesto!) pero puedo entender totalmente a las personas que quieren hacerlo de una forma u otra.
Prácticamente no creo que haya ninguna diferencia, pero hay prioridades en la forma en que funcionan. @PostConstruct
, init-method
son BeanPostProcessors.
-
@PostConstruct
es una anotación JSR-250, mientras queinit-method
es la manera de Spring de tener un método de inicialización. - Si tiene un método
@PostConstruct
, se llamará primero antes de llamar a los métodos de inicialización. - Si su bean implementa InitializingBean e invalida
afterPropertiesSet
, primero se llama a@PostConstruct
, luego aafterPropertiesSet
y luego ainit-method
.
Para obtener más información, puede consultar la documentación de referencia de Spring.