@Transactional fracaso de varias escenas

1. Un enfoque @Transactional fue la ausencia de @Transactional llamada a un método, que dará lugar rol fallo transaccional. La situación es más probable que ocurra.

  ¿Por qué habría que pasar? De hecho, esto se debe a la utilización de Spring AOPagentes causadas, porque sólo cuando el método de transacción se llama código fuera de la clase actual, se hará Springpara gestionar el objeto proxy generado.

2. El método de la anotación de transacciones no pública. @Transactional se producirá un error.

  La razón: cuando el agente es estar en primavera AOP, interceptor transacción para interceptar antes y después del método de destino, DynamicAdvisedInterceptormétodo de intercepción recibirá la información de configuración de transacción de la anotación de transacciones,

Agente porque la primavera AOP, como se muestra arriba TransactionInterceptor (interceptor transacción) para objetivo de intercepción antes y después de realizar el método, DynamicAdvisedInterceptor (CglibAopProxy clases internas) el método de intercepción o JdkDynamicAopProxy método invoke llamar indirectamente AbstractFallbackTransactionAttributeSource el computeTransactionAttribute método indirectamente llamando AbstractFallbackTransactionAttributeSource el computeTransactionAttribute método, que obtendrá información de configuración de anotación de transacciones transaccional. Lo hará método de transacción primer encuentro de clasificación de la verificación no es público, no la propiedad pública no se adquiere la información de configuración @Transactional.
problemas de configuración de propagación propiedades de los atributos de configuración transacción 3.Transactional.
  Cuando las propiedades de propagación están configurados para:
TransactionDefinition.PROPAGATION_SUPPORTS : Si existe la transacción actual, que se añade a la transacción, y si no hay ninguna transacción, lugares manera no transaccionales continúan funcionando.        TransactionDefinition.PROPAGATION_NOT_SUPPORTED : El ejecutarse en forma no transaccional, si existe la transacción actual, puesto que la transacción actual en espera.     TransactionDefinition.PROPAGATION_NEVER : El ejecutarse en forma no transaccional, si existe la transacción actual, se produce una excepción
 

4. También hay un caso en el que:

  Un método anotado por la transacción, B también se ha anotado método de transacción en una clase.

@ transaccional

 A public void () {

  tratar{

  esta b();

  } Catch (Exception e) {

    logger.error ();

  }

 

}

Sin embargo, en la aplicación del método B se da, pero es la captura anormal Un vivo, entonces la transacción se producirá un error.

Supongo que te gusta

Origin www.cnblogs.com/jiaoxiaoting/p/12548146.html
Recomendado
Clasificación