Red de conocimientos turísticos - Conocimientos sobre calendario chino - ¿Qué es el procesamiento de transacciones programáticas y el procesamiento de transacciones declarativas de Spring?

¿Qué es el procesamiento de transacciones programáticas y el procesamiento de transacciones declarativas de Spring?

Spring admite dos métodos: gestión de transacciones programáticas y gestión de transacciones declarativas.

Las transacciones programáticas utilizan TransactionTemplate o utilizan directamente el PlatformTransactionManager subyacente. Para la gestión de transacciones programáticas, Spring recomienda utilizar TransactionTemplate.

Las transacciones declarativas se basan en AOP. Su esencia es interceptar el método antes y después, y luego crear o unirse a una transacción antes de que comience el método de destino. Una vez ejecutado el método de destino, la transacción se confirma o revierte de acuerdo con el estado de ejecución. La mayor ventaja de las transacciones declarativas es que no es necesario administrar las transacciones mediante programación, por lo que no es necesario mezclar el código de administración de transacciones en el código de lógica empresarial. Solo necesita realizar declaraciones de reglas de transacciones relevantes en el archivo de configuración (o mediante @). Anotaciones basadas en transacciones), puede aplicar reglas de transacción a la lógica empresarial.

Obviamente, la gestión de transacciones declarativas es mejor que la gestión de transacciones programáticas. Este es el método de desarrollo no intrusivo recomendado por Spring. La gestión de transacciones declarativas evita que el código comercial se contamine. Un objeto POJO ordinario puede obtener soporte completo para transacciones agregando anotaciones. En comparación con las transacciones programáticas, la única desventaja de las transacciones declarativas es que su granularidad más fina solo puede afectar el nivel del método y no se puede aplicar al nivel de bloque de código como las transacciones programáticas. Pero incluso si existe tal demanda, existen muchas soluciones, por ejemplo, los bloques de código que necesitan gestión de transacciones se pueden separar en métodos, etc.

Existen dos métodos comúnmente utilizados para la gestión de transacciones declarativas, uno se basa en el archivo de configuración xml del espacio de nombres tx y aop, y el otro se basa en la anotación @Transactional. Obviamente, el enfoque basado en anotaciones es más fácil de usar y más refrescante

/div>