当前位置: 首页 > news >正文

英文网站建设优化班级网站素材下载

英文网站建设优化,班级网站素材下载,做一个展示网站多少钱,鄂州网站建设哪家好#x1f389;#x1f389;欢迎光临#xff0c;终于等到你啦#x1f389;#x1f389; #x1f3c5;我是苏泽#xff0c;一位对技术充满热情的探索者和分享者。#x1f680;#x1f680; #x1f31f;持续更新的专栏《Spring 狂野之旅#xff1a;从入门到入魔》 欢迎光临终于等到你啦 我是苏泽一位对技术充满热情的探索者和分享者。 持续更新的专栏《Spring 狂野之旅从入门到入魔》 本专栏带你从Spring入门到入魔  这是苏泽的个人主页可以看到我其他的内容哦 努力的苏泽http://suzee.blog.csdn.net/ 目录 介绍 1.1 Spring 事务管理的重要性 1.2 目标和范围 Spring 事务基础 2.1 事务概述 2.2 事务管理器 2.3 事务定义和注解 事务角色 事务相关配置 事务传播行为 1. REQUIRED 传播行为 2. REQUIRES_NEW 传播行为 3. SUPPORTS 传播行为 4. NOT_SUPPORTED 传播行为 5. MANDATORY 传播行为 6. NEVER 传播行为 ​编辑 隔离级别 1. READ_UNCOMMITTED 隔离级别 2. READ_COMMITTED 隔离级别 3. REPEATABLE_READ 隔离级别 4. SERIALIZABLE 隔离级别 事务原理 aop/动态代理 事务管理 对于编程式事务管理 对于声明式事务管理 实例 TransactionInterceptor 事务拦截处理 介绍 1.1 Spring 事务管理的重要性 在应用程序中事务管理是确保数据的一致性和完整性的重要组成部分。Spring 事务管理提供了一种可靠且灵活的方式来管理事务确保在数据库操作过程中的原子性、一致性、隔离性和持久性。 Spring 事务管理的重要性包括 数据库一致性通过事务管理可以确保数据库操作的原子性即要么所有操作都成功提交要么全部回滚从而保持数据的一致性。错误处理和回滚事务管理使得在发生错误时能够回滚事务确保数据的完整性以及在异常情况下进行适当的错误处理。并发控制通过定义适当的隔离级别事务管理可以处理并发访问数据库的问题避免数据冲突和不一致性。扩展性和灵活性Spring 事务管理提供了多种配置选项和编程方式可以根据应用程序的需求进行灵活配置和管理。 1.2 目标和范围 Spring 事务管理的目标是确保在应用程序中的数据库操作过程中能够实现以下目标 原子性Atomicity事务中的所有操作要么全部成功执行并提交要么全部失败并回滚确保数据库的一致性。一致性Consistency事务的执行过程中数据库从一个一致的状态转变为另一个一致的状态不会破坏数据的完整性。隔离性Isolation多个并发事务之间应该相互隔离每个事务的操作应该看起来像是在独立执行避免数据冲突和不一致性。持久性Durability一旦事务提交其对数据库的修改应该是永久性的即使在系统故障或重启后也能够恢复。 Spring 事务管理的范围包括 支持多种事务管理方式Spring 提供了多种事务管理方式包括编程式事务管理和声明式事务管理以适应不同的应用场景和开发需求。集成多种事务管理器Spring 可以与各种事务管理器集成包括本地 JDBC 事务、JTA 分布式事务、Hibernate 事务等以便与不同的持久化框架和数据库进行交互。提供注解和 XML 配置支持Spring 允许使用注解或 XML 配置的方式来定义和管理事务使得事务管理更加灵活和便捷。 Spring 事务基础 2.1 事务概述 Spring 事务是一组数据库操作的逻辑单元具有原子性和一致性。事务由一系列操作组成这些操作要么全部成功执行并提交要么全部失败并回滚。 Spring 事务的关键概念包括 事务管理器Transaction Manager事务管理器是 Spring 提供的一个接口用于管理事务的开始、提交和回滚操作。它与底层的数据库或持久化框架进行交互并确保事务的正确执行。事务定义Transaction Definition事务定义定义了事务的属性如隔离级别、传播行为、超时设置等。它可以通过编程方式或声明式方式来定义。事务状态Transaction Status事务状态表示当前事务的状态包括已提交、已回滚或进行中等。通过事务状态可以对事务进行管理和控制。事务切面Transaction Aspect事务切面是应用程序中与事务相关的逻辑和功能的集合。它可以通过编程方式或声明式方式来定义和应用。 2.2 事务管理器 在 Spring 中事务管理器Transaction Manager是用于管理事务的关键组件。事务管理器负责事务的开始、提交和回滚操作并与底层的数据库或持久化框架进行交互。 Spring 提供了多种事务管理器的实现包括 DataSourceTransactionManager用于管理基于 JDBC 的事务与 JDBC DataSource 进行交互。JpaTransactionManager用于管理基于 JPAJava Persistence API的事务与 JPA EntityManagerFactory 进行交互。HibernateTransactionManager用于管理基于 Hibernate 的事务与 Hibernate SessionFactory 进行交互。JtaTransactionManager用于管理分布式事务与 JTAJava Transaction API进行交互。 你可以根据应用程序所使用的持久化框架选择合适的事务管理器。 2.3 事务定义和注解 在 Spring 中事务定义Transaction Definition用于定义事务的属性如隔离级别、传播行为、超时设置等。事务定义可以通过编程方式或声明式方式来定义。 编程式事务定义是通过编写代码来显式地管理事务的开始、提交和回滚。你可以使用编程式事务管理的 API如 TransactionTemplate来定义事务的属性。 声明式事务定义是通过在方法或类级别上使用注解或 XML 配置来定义事务的属性。Spring 提供了 Transactional 注解用于在方法级别上定义事务的属性。你可以在需要进行事务管理的方法上添加 Transactional 注解并指定事务的属性。 事务的属性包括传播行为Propagation、隔离级别Isolation、只读标志ReadOnly、超时设置Timeout等。通过定义适当的事务属性你可以控制事务的行为和特性。 例如下面是一个使用 Transactional 注解定义事务的例子 Transactional(propagation Propagation.REQUIRED, isolation Isolation.DEFAULT) public void performTransaction() {// 事务操作 } 事务角色 事务相关配置 事务传播行为 1. REQUIRED 传播行为 如果当前存在事务则加入该事务中执行。如果当前没有事务则创建一个新的事务执行。这是Spring默认的传播行为。 2. REQUIRES_NEW 传播行为 总是创建一个新的事务并挂起当前事务如果存在。在新的事务中执行方法不受外部事务的影响。 3. SUPPORTS 传播行为 如果当前存在事务则加入该事务中执行。如果当前没有事务则以非事务的方式执行。 4. NOT_SUPPORTED 传播行为 总是以非事务的方式执行方法。如果当前存在事务则将其挂起。 5. MANDATORY 传播行为 如果当前存在事务则加入该事务中执行。如果当前没有事务则抛出异常。 6. NEVER 传播行为 总是以非事务的方式执行方法。如果当前存在事务则抛出异常。 隔离级别 1. READ_UNCOMMITTED 隔离级别 最低的隔离级别允许脏读、不可重复读和幻读的发生。一个事务可以读取另一个事务未提交的数据。 2. READ_COMMITTED 隔离级别 保证一个事务修改的数据提交后才能被另一个事务读取。避免脏读的发生但仍可能出现不可重复读和幻读。 3. REPEATABLE_READ 隔离级别 保证一个事务不能读取另一个事务未提交的数据。避免脏读和不可重复读的发生但仍可能出现幻读。 4. SERIALIZABLE 隔离级别 最高的隔离级别保证所有情况下都不会发生脏读、不可重复读和幻读。事务被处理为顺序执行避免并发读写操作。 事务原理 aop/动态代理 Spring的事务抽象包括三个主要接口PlatformTransactionManager、TransactionDefinition和TransactionStatus。 PlatformTransactionManager负责定义事务的边界它确定了何时开始和结束一个事务。TransactionDefinition负责定义事务的属性包括隔离级别、传播行为等。它提供了对事务进行详细配置的能力。  PlatformTransactionManager根据TransactionDefinition的属性定义来开启相关的事务。在事务开始后到结束期间TransactionStatus负责跟踪和管理事务的状态。通过TransactionStatus我们可以对事务进行有限的控制。  常用的TransactionDefinition的实现包括DefaultTransactionDefinition和TransactionTemplate。这两个主要用于编程式事务场景。另外还有DefaultTransactionAttribute和RuleBasedTransactionAttribute它们主要用于基于Spring AOP的声明式事务管理场景。RuleBasedTransactionAttribute允许同时指定多个回滚规则。  TransactionStatus的一个常见实现是DefaultTransactionStatus它用于记录事务的状态信息。PlatformTransactionManager的实现可以分为面向局部事务和面向全局事务两个分支。常用的面向局部事务的实现包括DataSourceTransactionManager用于JDBC和MyBatis和HibernateTransactionManager。它们提供了针对特定持久化框架的事务管理功能。 事务管理 对于编程式事务管理 使用TransactionTemplate或直接使用底层的PlatformTransactionManager进行操作。需要在代码中显式地编写事务管理的逻辑。需要手动处理事务的开始、提交和回滚。事务的管理逻辑与业务逻辑紧密耦合导致代码的可读性和可维护性降低。可以在更细粒度的代码块级别实现事务管理。 对于声明式事务管理 建立在AOP面向切面编程之上通过拦截目标方法前后的执行来实现事务管理。通过配置文件或基于Transactional注解的方式声明事务规则。不需要在业务逻辑代码中编写事务管理的代码保持业务代码的纯粹性。事务的管理逻辑与业务逻辑解耦提高了代码的可读性和可维护性。最细粒度只能作用于方法级别无法直接作用于代码块级别但可以通过方法的粒度来实现类似的效果。 实例 假设我们有一个银行账户系统其中涉及两个账户之间的转账操作需要保证转账操作的原子性即要么两个账户的金额同时发生变化要么都不发生变化。 首先我们需要使用数据库事务来确保转账操作的一致性。假设我们使用Spring框架来管理事务代码如下所示 Transactional public void transferAmount(String fromAccount, String toAccount, double amount) {try {// 1. 查询转出账户的余额double fromBalance accountDao.getBalance(fromAccount);// 2. 查询转入账户的余额double toBalance accountDao.getBalance(toAccount);// 3. 判断转出账户余额是否足够if (fromBalance amount) {throw new InsufficientBalanceException(Insufficient balance in the source account.);}// 4. 扣除转出账户的金额accountDao.updateBalance(fromAccount, fromBalance - amount);// 5. 增加转入账户的金额accountDao.updateBalance(toAccount, toBalance amount);// 6. 提交事务} catch (Exception e) {// 7. 出现异常回滚事务throw new TransferException(Error occurred during the transfer., e);} } 我们使用Transactional注解表示该方法需要在事务中执行。在方法内部我们按照以下步骤进行转账操作 查询转出账户的余额。查询转入账户的余额。判断转出账户余额是否足够如果不足够则抛出异常。扣除转出账户的金额。增加转入账户的金额。 在第6步之前如果发生了异常会跳转到第7步即异常处理的代码块。在异常处理块中我们抛出一个自定义的TransferException并使用throw语句将异常继续抛出。这会触发Spring事务管理器的回滚机制导致之前的数据库操作被撤销从而恢复到事务开始之前的状态。 通过事务回滚机制如果在转账过程中发生异常例如转出账户余额不足所有的数据库操作都会被回滚确保数据的一致性。这样可以避免转账过程中数据发生不一致的情况。 TransactionInterceptor 事务拦截处理 通过 Pointcut 事务切点筛选出来的 Bean会创建一个代理对象Bean 内部肯定定义了 Transactional 注解如果是类上定义的 Transactional 注解每个方法都需要进行事务处理。代理对象的事务拦截处理在 TransactionInterceptor 拦截器中实现了 MethodInterceptor 方法拦截器也就是实现了 Object invoke(MethodInvocation invocation) 这个方法一起来看看 TransactionInterceptor 这个类
http://www.w-s-a.com/news/272175/

相关文章:

  • 软文营销文案100篇如何优化搜索引擎的搜索功能
  • 做网站创意杭州家具网站建设方案
  • 福州seo网站推广优化乐清建网站
  • 莆田cms建站模板简述网站设计流程
  • 班级网站建设组织机构建设注册中心网站首页
  • 即墨网站建设地址怎么在文档中做网站一点就开
  • 做网站联系方式互联网行业分析
  • 杭州网站建设索q479185700高淳网站建设
  • 有什么做任务拿钱的网站精准的搜索引擎优化
  • 洛阳有建社网站的吗电力建设工程质量监督总网站
  • 网站404报错热水器网站建设 中企动力
  • 网站降权恢复淘宝 网站建设
  • 安州区建设局网站台州优秀关键词优化
  • 网站假设教程湖南微信管理系统
  • 网站备案属于公司哪一块哪个网站是专门做封面素材
  • 广州个人做网站内江建设局网站
  • 网站开发 360百科大连哪里有手机自适应网站建设维护
  • 如何查网站pv网站功防教程
  • 建设银行网站信息补充营销推广的作用
  • 网站见建设seo外链自动群发工具
  • 在境外做网站网站团购网站seo
  • 进网站后台加什么360推广 网站建设
  • 网站备案号码专做网站漏扫的工具
  • 罗店网站建设wordpress响应式
  • 网站怎么制作小程序wordpress实时获取qq资料
  • 网站的流量怎么赚钱经销做网站都有什么好处
  • 如何做好网站首页企术建站
  • 杭州网站建设咨询蓝韵网络聊城有制作网站的吗
  • 网站开发注意的事项深圳企业网站
  • 哈尔滨网站制作哪里专业网站建设维护有哪些内容