mirror of
https://gitee.com/many2many/java-web.git
synced 2025-01-11 14:40:55 +08:00
事务管理从第五章转到第六章
This commit is contained in:
parent
f8a618fec6
commit
e047d70373
@ -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:
|
||||
|
||||
|
@ -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 是一个开源的键值存储系统,支持多种数据结构。
|
||||
- **特点**: 高性能、低延迟、持久化支持。
|
||||
- **使用**: 存储会话数据、缓存、计数器等。
|
||||
|
Loading…
Reference in New Issue
Block a user