¿Hay alguna diferencia entre usar la anotación @PostConstruct
y declarar el mismo método que init-method
en la configuración Spring XML?Spring @PostConstruct vs. init-method attribute
Respuesta
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 de JSR-250 mientrasinit-method
es la manera de tener un método de inicialización de la primavera.- Si tiene un método
@PostConstruct
, esto se llamará primero antes de llamar a los métodos de inicialización. - Si su bean implementa InitializingBean e invalida
afterPropertiesSet
, se llama primero@PostConstruct
, luegoafterPropertiesSet
y luegoinit-method
.
Para obtener más información, puede consultar Spring reference documentation.
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 las 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 son 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.
@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.
¿Puede mostrar las partes relevantes del artículo? – segarci
- 1. Spring MVC Session Attribute Access
- 2. @PostConstruct y excepciones comprobadas
- 3. ¿Por qué usar @PostConstruct?
- 4. Spring Hibernate Vs jdbc template vs spring orm
- 5. Spring vs Hibernate
- 6. Spring JDBC vs JDBC
- 7. Spring vs Jboss
- 8. spring mvc vs seam
- 9. Struts2 vs Spring 3
- 10. JPA vs Spring JdbcTemplate
- 11. OpenID Simple Registration (sreg) vs. Attribute Exchange (ax)
- 12. axis2 vs spring-ws vs jersey
- 13. ¿Cómo probar el constructor de una clase que tiene un método @PostConstruct usando Spring?
- 14. WCF Read DataMember Name attribute
- 15. ASP.NET MVC vs Spring MVC
- 16. spring security AuthenticationManager vs AuthenticationProvider?
- 17. Servicios web vs Spring remoto
- 18. Desventajas del uso de Stripes + Spring vs Spring MVC
- 19. Spring vs EJB. ¿Puede Spring reemplazar a EJB?
- 20. HTML5 data- * attribute rules?
- 21. Flags Enum attribute
- 22. C# - ConfigurationSection isRequired attribute
- 23. Rmove xmlns attribute
- 24. Selenio checkbox attribute "checked"
- 25. GCC Bitwise Attribute
- 26. EJB: Usando EntityManager en el método PostConstruct
- 27. @PostConstruct no se llama en la primavera
- 28. inyección @Resource antes de cualquier nuevo @PostConstruct
- 29. Cuándo usar Spring Integration vs. Camel?
- 30. Configurable vs Componente con Spring y AspectJ
Si un grano está utilizando más de uno de esos métodos y confiando en el orden de inicialización, que va a ser terriblemente complejo y imposible de mantener. –
@Donal Muy cierto. Solo estaba proporcionando información sobre cómo funciona esto. –
Hay una diferencia importante: debe configurar específicamente Spring para procesar las anotaciones y hacer que @PostConstruct funcione: http://stackoverflow.com/q/3434377/134898 –