事务管理从第五章转到第六章

This commit is contained in:
wu 2024-10-31 09:41:09 +08:00
parent f8a618fec6
commit e047d70373
2 changed files with 90 additions and 88 deletions

View File

@ -937,7 +937,7 @@ public class MyService {
*
* @param joinPoint 连接点对象,提供了访问方法调用上下文的方法。
*/
@Before("execution(* com.lk.demo.*.*(..))") // 切点定义
@Before("execution(* com.lk.demo.*.*(..))") // 切点定义 execution : 表示方法执行时的连接点。
public void logBefore(JoinPoint joinPoint) {
// 连接点:在方法调用之前
System.out.println("Executing: " + joinPoint.getSignature());
@ -973,81 +973,7 @@ public class MyService {
}
```
### 5.6 Spring事务管理(了解)
#### 5.6.1 事务管理的基本概念
在计算机科学中特别是在数据库管理和分布式计算领域事务Transaction是一种基本的操作单位它确保了一系列操作要么全部成功要么全部失败。事务的概念是数据库管理系统DBMS中用来保证数据完整性和一致性的重要机制之一。
事务具有以下几个核心特点通常称为ACID属性
- **原子性 (Atomicity)**: 事务中的所有操作要么全部完成,要么一个也不完成。
- **一致性 (Consistency)**: 事务的执行不会破坏数据的一致性。
- **隔离性 (Isolation)**: 事务之间是隔离的,不会相互影响。
- **持久性 (Durability)**: 一旦事务提交,它的效果是持久的。
#### 5.6.2 Spring事务管理器
- **定义**: Spring提供了多种事务管理器如`DataSourceTransactionManager`。
- **示例**:
```java
@Configuration
@EnableTransactionManagement
public class AppConfig {
@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
}
```
#### 5.6.3 使用@Transactional进行声明式事务管理
- **定义**: 使用@Transactional注解来声明式地管理事务简化了事务控制代码。
- **示例**:
```java
@Service
@Transactional
public class UserService {
private final UserRepository userRepository;
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public void createUser(User user) {
userRepository.save(user);
}
}
```
#### 5.6.4 使用编程式事务管理
- **定义**: 通过编程的方式显式地管理事务,适用于需要更细粒度控制事务的情况。
- **示例**:
```java
@Service
public class UserService {
private final UserRepository userRepository;
private final PlatformTransactionManager transactionManager;
@Autowired
public UserService(UserRepository userRepository, PlatformTransactionManager transactionManager) {
this.userRepository = userRepository;
this.transactionManager = transactionManager;
}
public void createUser(User user) {
TransactionDefinition def = new DefaultTransactionDefinition();
TransactionStatus status = transactionManager.getTransaction(def);
try {
userRepository.save(user);
transactionManager.commit(status);
} catch (Exception e) {
transactionManager.rollback(status);
throw e;
}
}
}
```
### 5.7 构建工具
### 5.6 构建工具
构建工具Build Tools是软件开发过程中用于自动化构建、测试和打包软件应用程序的工具。它们通常用于编译源代码、运行测试、生成文档、打包应用程序以及执行其他与构建过程相关的任务。
@ -1070,9 +996,9 @@ java项目常用的构建工具有
- 提供了丰富的插件生态系统。
#### 5.7.1 Maven
#### 5.6.1 Maven
##### 5.7.1.1 独立使用Maven
##### 5.6.1.1 独立使用Maven
##### 安装 Maven
@ -1108,7 +1034,7 @@ cd path/to/your/project
mvn clean package
mvn package
```
##### 5.7.1.2 在IDEA使用Maven
##### 5.6.1.2 在IDEA使用Maven
**导入 Maven 项目**
* 打开 IntelliJ IDEA
@ -1125,9 +1051,9 @@ IntelliJ IDEA 自带 Maven 插件,可以使用 Maven 插件来运行测试、
> **访问 Maven 工具窗口:** 在 IntelliJ IDEA 的右侧栏中找到 “Maven” 工具窗口。 如果没有显示,可以通过 “View” > “Tool Windows” > “Maven” 打开。
#### 5.7.2 Gradle
#### 5.6.2 Gradle
##### 5.7.2.1 独立使用Gradle
##### 5.6.2.1 独立使用Gradle
##### 安装 Gradle
@ -1172,7 +1098,7 @@ IntelliJ IDEA 自带 Maven 插件,可以使用 Maven 插件来运行测试、
- **清理项目**: `./gradlew clean` Linux/macOS
- `gradlew.bat clean` Windows
##### 5.7.2.2 IDEA中使用Gradle
##### 5.6.2.2 IDEA中使用Gradle
在 IntelliJ IDEA 中使用 Gradle 同样可以提高开发效率,因为 IDEA 提供了对 Gradle 的深度集成支持。以下是详细的步骤说明如何在 IntelliJ IDEA 中使用 Gradle

View File

@ -177,11 +177,87 @@ public class JdbcCrudExample {
ResultSet rs = pstmt.executeQuery();
```
### 6.4 ORM(了解)
#### 6.4.1 ORM基本概念
### 6.4 事务管理(了解)
#### 6.4.1 事务管理的基本概念
在计算机科学中特别是在数据库管理和分布式计算领域事务Transaction是一种基本的操作单位它确保了一系列操作要么全部成功要么全部失败。事务的概念是数据库管理系统DBMS中用来保证数据完整性和一致性的重要机制之一。
事务具有以下几个核心特点通常称为ACID属性
- **原子性 (Atomicity)**: 事务中的所有操作要么全部完成,要么一个也不完成。
- **一致性 (Consistency)**: 事务的执行不会破坏数据的一致性。
- **隔离性 (Isolation)**: 事务之间是隔离的,不会相互影响。
- **持久性 (Durability)**: 一旦事务提交,它的效果是持久的。
#### 6.4.2 Spring事务管理器
- **定义**: Spring提供了多种事务管理器如`DataSourceTransactionManager`。
- **示例**:
```java
@Configuration
@EnableTransactionManagement
public class AppConfig {
@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
}
```
#### 6.4.3 使用@Transactional进行声明式事务管理
- **定义**: 使用@Transactional注解来声明式地管理事务简化了事务控制代码。
- **示例**:
```java
@Service
@Transactional
public class UserService {
private final UserRepository userRepository;
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public void createUser(User user) {
userRepository.save(user);
}
}
```
#### 6.4.4 使用编程式事务管理
- **定义**: 通过编程的方式显式地管理事务,适用于需要更细粒度控制事务的情况。
- **示例**:
```java
@Service
public class UserService {
private final UserRepository userRepository;
private final PlatformTransactionManager transactionManager;
@Autowired
public UserService(UserRepository userRepository, PlatformTransactionManager transactionManager) {
this.userRepository = userRepository;
this.transactionManager = transactionManager;
}
public void createUser(User user) {
TransactionDefinition def = new DefaultTransactionDefinition();
TransactionStatus status = transactionManager.getTransaction(def);
try {
userRepository.save(user);
transactionManager.commit(status);
} catch (Exception e) {
transactionManager.rollback(status);
throw e;
}
}
}
```
### 6.5 ORM(了解)
#### 6.5.1 ORM基本概念
- **定义**: ORM (Object-Relational Mapping) 是一种编程技术,用于将对象模型映射到关系型数据库模型。
- **目的**: 简化数据库操作,提高开发效率。
#### 6.4.2 常见ORM框架介绍
#### 6.5.2 常见ORM框架介绍
- **JPA (Java Persistence API)**
- **定义**: JPA 是Java EE标准的一部分提供了一种对象持久化机制。
- **特点**: 支持实体管理和生命周期管理。
@ -192,11 +268,11 @@ public class JdbcCrudExample {
- **定义**: MyBatis 是一个半自动的ORM框架提供了SQL查询的灵活性。
- **特点**: 支持动态SQL和存储过程。
### 6.5 NoSQL数据库(了解)
#### 6.5.1 MongoDB介绍
### 6.6 NoSQL数据库(了解)
#### 6.6.1 MongoDB介绍
- **定义**: MongoDB 是一个文档型NoSQL数据库使用JSON-like文档存储数据。
- **特点**: 高性能、高可用性、易于水平扩展。
#### 6.5.2 Redis介绍
#### 6.6.2 Redis介绍
- **定义**: Redis 是一个开源的键值存储系统,支持多种数据结构。
- **特点**: 高性能、低延迟、持久化支持。
- **使用**: 存储会话数据、缓存、计数器等。