Frontier: con un estudio más profundo de la gestión de transacciones de primavera, este artículo no hará ejemplos, sino que especificará clases y archivos de configuración específicos para explicación.
Contenido de este artículo:
1. Comprender qué es una transacción declarativa?
2. ¿Cuáles son la gestión de transacciones declarativas?
3. ¿Cuál es la diferencia entre estos tipos de gestión de transacciones?
1. ¿Qué es una transacción declarativa?
La gestión de transacciones declarativas es una de las formas de administrar las transacciones del programa proporcionadas por Spring. Las transacciones declarativas de Spring utilizan el método declarativo para manejar las transacciones y usan el procesamiento declarativo de transacciones en los archivos de configuración de Spring para reemplazar el procesamiento de transacciones basado en código. La ventaja de esto es que la gestión de transacciones no invade los componentes de desarrollo. Específicamente, el objeto lógico de negocios no se dará cuenta de que está en la gestión de transacciones. De hecho, lo mismo debería ser cierto, porque la gestión de transacciones es un servicio a nivel de sistema, no es parte de la lógica comercial. Si desea cambiar la administración de transacciones, solo necesita modificar la configuración en el archivo de configuración definido. Cuando no se necesita administración de transacciones, simplemente modifíquela en el archivo de configuración y elimine el servicio de administración de transacciones sin cambiar el código y recompilarlo, lo cual es extremadamente conveniente de mantener.
2. Método de gestión de transacciones declarativas.
Primero, echemos un vistazo a la gestión de transacciones original antes de que podamos hablar sobre el método de gestión de transacciones declarativas.
Como se puede ver en la figura anterior, primero necesitamos crear una nueva sesión.Opensession (), en segundo lugar, necesitamos crear y confirmar transacciones a través del método getTransaction (). Begin () y getTransaction (). Commit (), y necesitamos cerrar session.close (). De esta manera, cada vez que llamamos a este método, recrearemos una nueva sesión y haremos lo mismo repetidamente, lo que no se ajusta a nuestra idea de diseño de ingeniería de software. A continuación, utilizamos la gestión de transacciones declarativas para simplificar y ajustar el código.
1. Use la gestión de transacciones declarativas de Spreraop.
1.1. Necesitamos importar varios paquetes de AOP:
1.2. Luego realice la configuración de la transacción en el archivo de configuración Application.xml:
1.3. Modificar el método para consultar todos los datos:
Después de la explicación anterior, podemos ver la modificación del método showallNews (). Primero, cambiamos el método original OpenSession () a GetCurrentSession () (NOTA: La captura de pantalla tiene comentarios para ilustrar sus diferencias, por lo que no las repetiré). No hay necesidad de crear y cometer transacciones manualmente. Nuestro Spreraop administrará automáticamente las transacciones y cerrará automáticamente la sesión.
2. Use el método de anotación @Transactional.
2.1. Primero, necesitamos realizar la configuración de transacciones en el archivo de configuración de aplicaciones. XML (notifique a Spring Container para manejar el procesamiento de frijoles de anotación @Transactional):
2.2. Entonces no hay necesidad de hacer ninguna operación o modificación en NewsDaoImpl:
2.3. Agregue anotaciones a NewsServiceImpl.
Aquí podemos agregar @Transactional Annotation a la clase (lo que significa que todos los métodos se agregan a la gestión de transacciones) o agregar anotación @Transactional al método específico. Si se trata de un método que no requiere modificar los datos, agregue un atributo.
Por ejemplo: método para consultar todos los datos @TransactionAL (readonly = true)
3. La diferencia entre la gestión de transacciones declarativas configurada utilizando Sprinaop y la anotación @Transactional:
1) La gestión de transacciones declarativas de configuración de Spreraop tiene un bajo acoplamiento, baja legibilidad, expresión detallada y alta flexibilidad.
2) La anotación @Transactional tiene una alta legibilidad, y el contenido se dispersa y no conduce a la gestión y el mantenimiento unificados, y tiene un alto acoplamiento.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.