Prefacio:
Septiembre del año pasado, mis colegas y yo en los frikis tiempo ganado cubo de la familia Ding Xuefeng primavera de aprendizaje, el plan de estudios se divide en 16 capítulos en total, he aprendido la mayor parte, son registrados en un cuaderno antes, hoy quiero grabar en el blog, compartir más conocimiento a las personas que necesitan ayuda, voy a ser el número de capítulos como el contenido del artículo, el curso original hablar con más detalle, yo estoy aquí para hacer un resumen sobre algunos puntos específicos.
.Spring de una abstracción de transacciones
modelo de transacción consistente
- JDBC / Hibernate / mybatis
- Dtsourche / Jria
abstracción de transacción de interfaces principales
PlatformTransactionManager
- DataSourceTransactionManager
- HibernateTransactionManager
- JtaTransactionManager
TransactionDefinition
- Propagación
- Islation
- Se acabó el tiempo
- Estado de sólo lectura
características de propagación de Transacción
transmisible | valor | descripción |
PROPAGATION_REQUIDED | 0 | Tenemos que usar la transacción actual, no sólo con el nuevo |
PROPAGATION_SUPPORTS | 1 | opcional transacción, no se requiere |
PROPAGATION_MANDATORY | 2 | actualidad deben ser, de lo contrario Lanza |
PROPAGATION_REQUIRES_NEW | 3 | Si hay o no una transacción, todo ello desde una nueva transacción |
PROPAGATION_NOT_SUPPORTED | 4 | No es compatible con las transacciones, a cargo de una manera no transaccional |
PROPAGATION_NEVER | 5 | No es compatible con las transacciones, si la transacción es Lanza |
PROPAGATION_NESTED | 6 | Hay actualmente Asuntos renovaron una transacción en la transacción actual |
características de aislamiento de transacción
aislamiento | valor | lectura sucia | lectura no repetible | la magia de lectura |
ISOLATION_READ_UNCOMMITTED | 1 | si | si | si |
ISOLATION_READ_COMMITTED | 2 | No | si | si |
ISOLATION_REPEATABLE_READ | 3 | No | No | si |
ISOLATION_SERIALIZABLE | 4 | No | No | No |
transacciones programáticas
TransactionTemplate
- TransactionCallback
- TransactionCallbackWithoutResult
PlatformTransactionManager
- Se puede definir TransactionDefinition entrante
transacción declarativa
https://www.cnblogs.com/ooo0/p/11029629.html
configuración basada en anotación
Notas asuntos de manera abierta:
- @EnableTransactionManagement
- <Tx: anotación impulsada />
algunos de configuración
- clase de destino de proxy
- modelo
- orden
@Transactional
- transactionManager
- propagación
- aislamiento
- se acabó el tiempo
- solo lectura
- Cómo determinar la reversión
Dos. JDBC de primavera abstracción anormal
Primavera conversión anormal en un DataAccessException voluntad de manipulación de datos
O bien el uso de datos de acceso, se utilizará la misma excepción
La primavera es la comprensión de cómo los códigos de error?
- Por código de error de análisis SQLErrotCodeSQLExceptionTranslator
ErrorCode definido
- org / Spring Framework / JDBC / soporte / sql-error-codes.xml
- sql-error-codes.xml bajo Classpath
código de error personalizado SpringBoot
comentario común tres. SpringBoot
Consulte: https://blog.csdn.net/tangthh123/article/details/104092510
Cuatro. Actuador
URL | efecto |
/ Actuador / salud | Comprobar la salud |
/ actuador / frijoles | Ver todos recipiente de granos |
/ Actuador / mapeo | Ver mapeo Web URL |
/ Actuador / env | Ver Información Ambiental |
Prohibir todo el punto final
Application.properties parámetros de configuración o application.yml
management.endpoints.web.exposure.include=*
V. múltiples fuentes de datos. Subtabla Sub-biblioteca. Las relaciones separadas de lectura y escritura
1. Varios común
- Las necesidades del sistema de acceso a varias bases de datos diferentes, esta vez se pueden configurar ambas fuentes de datos
- El sistema requiere el acceso a la biblioteca principal y la biblioteca con una biblioteca de copia de seguridad, es decir, utilizar una lectura independiente y tiempo de escritura, una biblioteca principal, tanto en una base de datos en espera, la fuente de datos configurada de forma individual, la separación de escritura
- El sistema requiere el acceso a una base de datos como un conjunto de sub-biblioteca subtabla (split vertical, división horizontal), trata de middleware base de datos de uso.
Naturaleza VI. Asuntos
La naturaleza declarativa de la transacción en la primavera de AOP es mejorar la funcionalidad de la clase.
La naturaleza de primavera AOP es un indicador de la clase haga
- Llamada aparece en su propia manera, eh, es el uso real de la clase de proxy mejorada
Problema Solución:
- El método de la clase de proxy después de la visita mejorado, en lugar de acceso directo a su propio método
VII. Configuración de registro Slow
Alibaba puso en marcha una serie de base de datos de agrupación de conexiones Descripción:
Propiedades de configuración del sistema
- druid.stat.logSlowSql = true
- druid.stat.slowSqlMillis = 3000
SpringBoot
- spring.datasource.druid.filter.stat.enabled = true
- spring.datasource.druid, filter.stat.log-lento-sql = true
- spring.datasource.druid.filter.stat.slow-sql-millis = 3000