spring这个东东都快忘光了,从今天开始在复习下,坚持把它整理完.
概念:
Spring是一个开源的控制反转(Inversion of Control ,IoC)和面向切面(AOP)的容器框架.它的主要目得是简化企业开发.
控制反转:就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转.
依赖注入:就是指在运行期,由外部容器动态地将依赖对象注入到组件中。
为什么要使用spring?
至少在我看来,在项目中引入spring立即可以带来下面的好处
1.降低组件之间的耦合度,实现软件各层之间的解耦。
2.可以使用容器提供的众多服务,如:事务管理服务、消息服务等等。当我们使用容器管理事务时,开发人员就不再需要手工控制事务.也不需处理复杂的事务传播。
3.容器提供单例模式支持,开发人员不再需要自己编写实现代码。
4.容器提供了AOP技术,利用它很容易实现如权限拦截、运行期监控等功能。
5.容器提供的众多辅作类,使用这些类能够加快应用的开发,如: JdbcTemplate、 HibernateTemplate。
6.Spring对于主流的应用框架提供了集成支持,如:集成Hibernate、JPA、Struts等,这样更便于应用的开发。
7.如果使用Spring, 我们就不再需要手工控制事务

使用Spring,不再需要我们处理复杂的事务传播行为
使用Spring,我们只需要通过声明式的事务属性配置就可以轻松地实现这两种业务需求
1.要求Bean1.update()和Bean2.save()的在同一个事务中执行
2.要求不管Bean1.update() 的事务是否成功,都需要记录日志。
@Transactional(propagation=Propagation.Required)
public void payment(){
Bean1.update();//更新金额
Bean2.save();//记录日志
}
public class Bean1 {
@Transactional(propagation=Propagation.Required) //要求1
@Transactional(propagation=Propagation.Required)//要求2
public void update(){
executeUpdate(“update account set amount=? where id=?");
}
}
public class Bean2 {
@Transactional(propagation=Propagation.Required) //要求1
@Transactional(propagation=Propagation.RequiresNew)///要求2
public void save(){
executeUpdate(“insert into Log (content) values (?)");
}
}
分享到:
相关推荐
1. **全面阐释Spring及其功能** - Spring是一个开源的IoC和AOP框架,它通过提供容器管理和依赖注入来减少组件间的耦合。 - IoC使应用程序不再负责对象的创建和管理,而是由Spring容器负责,降低了组件间的依赖。 ...
例如,在《2022版新高考数学二轮复习:第一部分-第3讲-复数与平面向量-Word版含解析.doc》文档中,第3讲第3题就涉及了复数除法的计算。考生需要掌握如何将复数的商转化为实数形式,这是解决复数运算问题的关键所在。...
1. **Spring全面阐释**:Spring框架是一个开源的Java平台,它为构建应用程序提供了全面的支持。它不仅涵盖了依赖注入(DI)和面向切面编程(AOP),还提供了一个用于处理事务、数据访问、Web应用、安全性和集成的...
JPA用于整合现有的ORM技术,可以简化现有Java EE和Java SE应用对象持久化的开发工作,实现ORM的统一。JPA用于整合现有的ORM技术,第1讲 全面阐释和精彩总结JPA
《书法的形态与阐释》是一份深入探讨中国书法艺术的参考资料,主要涵盖了书法的基本形态、艺术特点、演变历程以及如何阐释书法作品等多个方面。这份压缩包包含了一个名为“书法的形态与阐释.pdf”的文件,我们可以从...
Java Persistence API(JPA)是Java平台上的一个标准,用于管理关系数据库中的数据。...在“01_传智播客JPA详解_全面阐释和精彩总结JPA”这个资源中,你将找到关于JPA的深入讲解和实用技巧,帮助你全面掌握这一技术。
论文研究-最优集约度问题及其解法.pdf, 最优集约度是指在一组约束条件...本文将最优化理论、方法与经济增长中的集约度问题相结合 ,首次提出和阐释最优集约度问题及其解法.
### 全面阐释和精彩总结JPA:Java Persistence API的核心理念与实践 #### JPA:Java持久化的统一标准 JPA(Java Persistence API),作为Sun官方提出的Java持久化规范,其核心目标在于简化并标准化Java应用程序中...
**Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理关系数据库中的数据,它为开发者提供了一种对象关系映射(ORM)框架,使得Java应用程序可以方便地操作数据库。JPA允许开发者使用Java对象来表示...
经络系统是中医理论中的核心概念之一,其涉及人体的生理功能、病理变化以及疾病的诊断与治疗。本文旨在研究经络系统与躯体、中枢神经系统以及内脏之间的相互关系和网络结构,并从数学的角度探讨其内在的机制。 首先...
通过"01_传智播客Spring2.5视频教程_全面阐释Spring及其各项功能",你将有机会深入学习上述所有概念,并通过实例来巩固理解。这个教程应该涵盖了从基础到高级的多个层次,帮助你从零开始掌握Spring框架,并逐步成长...
·全面阐释C++基本概念和技术。与传统的C++教材相比,《C++程序设计原理与实践》对基本概念和技术的介绍更为深入,为你编写实用、正确、易维护和有效的代码打下坚实的基础。 ·强调现代C++编程风格。从开篇就介绍...
《乔治·斯坦纳及其翻译阐释运作汇编》是关于翻译阐释学的重要研究,作者乔治·斯坦纳是一位在文学、语言和哲学领域具有深远影响力的学者。本文将深入探讨斯坦纳的观点,特别是他在翻译阐释学中的贡献。 翻译阐释学...
1. 中国古代文论的现代转化:中国古代文论现代转化是指将传统文学理论的概念、范畴和方法适应现代社会和学术环境,使其在当代文化语境中具有新的解释力和应用价值。这一过程不仅涉及观念认识,更是一个学术实践层面...
1. **古代文论现代转化的学术价值**:中国古代文论现代转化的学术价值在于,它能够使传统文化在现代社会中焕发新的生命力,推动文学理论研究的深入,促进不同学科之间的交流与融合。通过对传统文论的现代阐释,可以...
"阐释者光标样式"是一种特殊的光标设计,灵感来源于热门动漫《刀剑神域》中的主角所使用的武器——阐释者。这个光标样式为用户提供了个性化电脑体验的机会,特别是对于动漫爱好者来说,它能让桌面变得更加独特且富有...
本文档《微机原理与应用:第三十二讲 定时器-计数器的应用下.ppt》对这一主题进行了深入的解析和实例演示。 首先,定时器-计数器在单片机中承担着计时和计数两大基本功能。计时功能通常用于产生定时中断,以执行...
为了解剖Spring容器原理,黎活明老师在课堂现场亲手编写一个mini版的Spring容器,借此向大家阐释清楚Spring内部的核心代码和底层工作原理。本套视频教程是一个普通程序员向高手进阶的绝佳学习资料,值得大多数有经验...
与此同时,它与西方科学哲学虽共享对自然科学哲学问题的关注,但西方科学哲学往往忽视或排斥自然界中的辩证法,而自然辩证法则力图将辩证法与实证科学相结合,提供了一个更为全面和深入的视角来理解自然界和科学技术...