什么程序做的网站没有index页面学校如何建设网站

张小明 2026/3/12 15:28:03
什么程序做的网站没有index页面,学校如何建设网站,黄页88网站,网上免费logo设计学习资料#xff1a;Spring 事务详解 | JavaGuide Spring支持的事务本质上是数据库支持的事务#xff0c;所以前提也是数据库支持事务 Spring 不直接实现事务#xff0c;而是通过 事务管理器#xff08;PlatformTransactionManager#xff09; 来对接不同底层技术#…学习资料Spring 事务详解 | JavaGuideSpring支持的事务本质上是数据库支持的事务所以前提也是数据库支持事务Spring不直接实现事务而是通过事务管理器PlatformTransactionManager来对接不同底层技术底层技术对应的事务管理器JDBC / MyBatisDataSourceTransactionManagerJPAJpaTransactionManagerHibernateHibernateTransactionManager所以 Spring 的事务是抽象 适配的设计典范。Spring支持两种方式的事务管理编程式事务管理使用硬编码的方式和声明式事务管理使用注解Transactional的方式编程式事务Autowired private PlatformTransactionManager transactionManager; public void save() { //1.开启事务 TransactionStatus status transactionManager.getTransaction(new DefaultTransactionDefinition()); try { // 业务代码 personDao.save(person); detailDao.save(detail); //2.提交 transactionManager.commit(status); } catch (Exception e) { //3.回滚 transactionManager.rollback(status); } } //这个是最原始的编程式事务手动控制事务边界 //其实和直接用 JDBC 的 connection.setAutoCommit(false) commit()/rollback() 是类似的只是 Spring 把它抽象成了统一接口。 //TransactionTemplate 对 PlatformTransactionManager 的模板方法封装 Autowired private TransactionTemplate transactionTemplate; public void save() { transactionTemplate.execute(status - { // 业务代码 personDao.save(person); detailDao.save(detail); }); }声明式事务Service public class AccountService { Transactional public void transfer(int from, int to, int amount) { accountDao.reduce(from, amount); // int i 1/0; // 如果这里出异常整个方法会回滚 accountDao.add(to, amount); } }这种通过注解的方式底层原理实际是通过AOP 动态代理在方法执行前后插入事务管理逻辑底层调用PlatformTransactionManager实现编程式事务控制。AOP通过给这个对象创建一个代理的方式拦截这个加了注解的方法实际走的是代理的invoke方法。这个代理对象内部仍然持有真实对象的引用。PlatformTransactionManager的底层原理Transactional public void transfer(...) { accountDao.reduce(...); // 第1次 DB 操作 accountDao.add(...); // 第2次 DB 操作 }要保证原子性同一个事务中的多次数据库操作必须使用同一个数据库连接并且该连接处于手动提交模式而默认情况下springboot中的datasource会自动配置一个最大连接为10的连接池spring通过把connection绑定当当前线程ThreadLocal来实现使用同一个连接来保证事务操作在开启事务的时候使用一个叫TransactionSynchronizationManager的工具类内部通过ThreadLocal存储事务相关资源Override protected Object doGetTransaction() { DataSourceTransactionObject txObject new DataSourceTransactionObject(); // 尝试从 ThreadLocal 中获取已存在的 Connection ConnectionHolder conHolder (ConnectionHolder) TransactionSynchronizationManager.getResource(dataSource); if (conHolder ! null) { // 已有事务 → 复用 Connection用于传播行为 REQUIRED txObject.setConnectionHolder(conHolder, false); } else { // 新事务 → 从 DataSource 获取新连接 Connection con dataSource.getConnection(); con.setAutoCommit(false); // 关键关闭自动提交 // 绑定到当前线程的 ThreadLocal ConnectionHolder newConHolder new ConnectionHolder(con); TransactionSynchronizationManager.bindResource(dataSource, newConHolder); txObject.setConnectionHolder(newConHolder, true); } return txObject; }但是需要注意的是ThreadLocal绑定的资源不会自动传递到子线程所以在异步任务、线程池等中事务会失效除非手动传递连接。这也是一次面试中面试官问到的如果事务中开了一个子线程的话事务还能生效吗
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

北京网站建设兼职横岗网站制作

MouseInc鼠标手势:如何用简单手势实现复杂操作效率翻倍 【免费下载链接】MouseInc.Settings MouseInc设置界面 项目地址: https://gitcode.com/gh_mirrors/mo/MouseInc.Settings 还在为频繁的鼠标点击和菜单导航而烦恼吗?想要通过直观的鼠标移动就…

张小明 2026/3/5 2:36:03 网站建设

如何做h5 网站手机系统优化软件哪个好

在VonaJS框架中,AOP编程包括三方面:控制器切面、内部切面和外部切面。控制器切面包括五能力:Middleware、Guard、Interceptor、Pipe、Filter。其中,Middleware又分为:局部中间件、全局中间件和系统中间件。其时序图如下…

张小明 2026/3/5 2:27:03 网站建设

茶叶销售网站源代码网店都有哪些平台

ipget极速入门:颠覆传统的分布式文件下载神器 【免费下载链接】ipget Retrieve files over IPFS and save them locally. 项目地址: https://gitcode.com/gh_mirrors/ip/ipget 在当今数据爆炸的时代,如何高效、便捷地获取分布式网络中的文件成为了…

张小明 2026/3/5 2:27:07 网站建设

中国企业网官方网站下载做游戏网站在哪里找

如何用nom解析器组合子三步掌握函数式编程的精髓 【免费下载链接】nom 项目地址: https://gitcode.com/gh_mirrors/nom/nom 在Rust生态系统中,nom解析器组合子库以其独特的设计理念和强大的功能而闻名。这个库巧妙地将函数式编程思想融入到解析器构建过程中…

张小明 2026/3/5 2:27:08 网站建设

简易手机站基于android的app开发用什么软件

在当今人工智能语音合成领域,开源语音合成框架正迎来革命性突破。传统文本转语音系统长期受限于短文本处理能力和单一说话人支持,而微软最新发布的VibeVoice开源项目通过创新的技术架构,成功实现了长文本TTS和多说话人语音生成的重大进展&…

张小明 2026/3/5 2:27:04 网站建设

手机企业网站做网站需要掌握的技术

HS2-HF_Patch完全攻略:5步搞定游戏补丁安装 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 如果你正在寻找让HoneySelect2游戏体验更上一层楼的方法…

张小明 2026/3/13 3:44:19 网站建设