Red de conocimiento informático - Problemas con los teléfonos móviles - spring proporciona una abstracción de gestión de transacciones coherente. ¿Cuáles son las ventajas de esta abstracción?

spring proporciona una abstracción de gestión de transacciones coherente. ¿Cuáles son las ventajas de esta abstracción?

Dos métodos de gestión de transacciones Spring: programático y declarativo.

Spring proporciona dos formas de gestión de transacciones programáticas, a saber: usar TransactionTemplate y usar directamente PlatformTransactionManager.

1.TransactionTempale utiliza el mismo método que otras plantillas Spring, como JdbcTempalte e HibernateTemplate. Utiliza métodos de devolución de llamada para liberar a la aplicación de tener que lidiar con la adquisición y liberación de recursos. Al igual que otras plantillas, TransactionTemplate es segura para subprocesos. Fragmento de código:

Resultado del objeto = tt.execute(new TransactionCallback()...{

Objeto público doTransaction(estado de TransactionStatus)...{

updateOperation();

return resultOfUpdateOperation();

}

});

Utilice TransactionCallback() para devolver un valor. Si se utiliza TransactionCallbackWithoutResult, no hay ningún valor de retorno.

2. También puede utilizar PlatformTransactionManager para gestionar transacciones directamente. Simplemente pase una referencia de bean al objeto PlatformTransaction que utiliza. Luego, utilice los objetos TransactionDefinition y TransactionStatus para iniciar, revertir y confirmar transacciones. El siguiente fragmento:

DefaultTransactionDefinition def= new DefaultTransactionDefinition(); //nueva una transacción def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); //Inicializa la transacción, los parámetros definen el tipo de propagación de la transacción TransactionStatus = transactionManager; .getTransaction (def); //Obtener el estado de la transacción try...{ …………….. transactionManager.commit(status); //Confirmar transacción }catch(…..)...{ transactionManager.rollback( estado) ; //Revertir transacción }