Una anotación es la mejor opción para marcar que un método se debe ejecutar en una transacción. Esto se recomienda para Spring y EJB 3.
El enfoque XML requiere mucha más configuración, no es refactorizado y debe ver en la configuración si se ejecutará o no un método determinado en una transacción.
Dado que el soporte de transacciones basado en anotaciones es la opción preferida por la mayoría de los desarrolladores y no desea utilizar la anotación de Spring @Transactional
, le recomendaré que use una anotación personalizada.
entonces usted tiene dos opciones:
- Deje que su anotación personalizada extender la primavera de
@Transactional
y utilizar el elemento <tx:annotation-driven />
en la configuración de la primavera. Esto es fácil y solo se necesita actualizar una anotación para eliminar la dependencia de Spring.
- Crea un interceptor que ejecuta la lógica antes y después del método anotado. Con Spring como contenedor, debe delegar el manejo de transacciones del interceptor antes y después de su implementación de
PlatformTransactionManager
preferida.
He escrito sobre cómo se puede crear un interceptor que agrega lógica antes y después de un método marcado con una anotación here. Y demostró qué métodos debe usar en PlatformTransactionManager here.
Espero que esto ayude!
yup, puede ver las diferentes posibilidades aquí: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/transaction.html#transaction-declarative –