spring的事务是通过“声明式事务”的方式对事务进行管理,即在配置文件中进行声明,通过AOP将事务切面切入程序。最大的好处是大大减少了代码量,比如:
1
2
3
4
|
Transaction tx=session.getTransaction();
session.beginTransaction();
tx.commit();
tx.rollback();
|
等等这类代码不用在每个方法中重复的去写,简化了程序,提高了工作效率。
回复于: 2013-11-04 09:42:23
有道理,如果目前拿4000块钱一个月,那么你不必懂它是怎么实现的。如果我是面试官我也会这样的问题,我觉不期许你都能知道,但如果你刚好都知道那不是太好了么
回复于: 2013-11-04 10:26:49
1.IOC控制反转:控制权由对象本身转向容器,由容器对bean对象进行控制。
2.AOP面向切面编程:把具体的类创建对应的代理类,通过代理类来对具体类进行操作。
spring是一个容器,通过spring这个容器来对对象进行管理,根据配置文件来实现spring对对象的管理。
就这样理解吧,暂时我也只能这么回答,太深入我也不知道怎么说了
2.AOP面向切面编程:把具体的类创建对应的代理类,通过代理类来对具体类进行操作。
spring是一个容器,通过spring这个容器来对对象进行管理,根据配置文件来实现spring对对象的管理。
就这样理解吧,暂时我也只能这么回答,太深入我也不知道怎么说了
回复于: 2013-11-04 17:51:38
SPRING的事务贯彻始终的
源代码没有读过
但是不管AOP还是IOC都有事务支持的
推测一下
SPRING是一个大的容器,一个大的工厂类
那么当你从SPRING中获取一个对象的时候
在建立对象的时候
先开启了事务,然后将对象给你,让 你去使用
在你方法结束后会交回对象
这个时候提交事务并关闭事务
这些操作都在框架内实现
所以只要使用了SPRING就一定会被事务所包围着
源代码没有读过
但是不管AOP还是IOC都有事务支持的
推测一下
SPRING是一个大的容器,一个大的工厂类
那么当你从SPRING中获取一个对象的时候
在建立对象的时候
先开启了事务,然后将对象给你,让 你去使用
在你方法结束后会交回对象
这个时候提交事务并关闭事务
这些操作都在框架内实现
所以只要使用了SPRING就一定会被事务所包围着
回复于: 2013-11-05 11:09:35
要明白事务是怎么样的一个概念,自己写事务又如何做
try{
// 业务逻辑
if(成功)
commit();
}catch(e){
// 出现异常
rollback();
}
spring会捕获到你往上抛的异常,然后帮你try catch,如果发现捕获到异常,会就把connection不提交,直接回滚,所以我们在配置声明式事务的时候会有一个参数是什么异常类,默认应该是runtimexcepttion吧...
try{
// 业务逻辑
if(成功)
commit();
}catch(e){
// 出现异常
rollback();
}
spring会捕获到你往上抛的异常,然后帮你try catch,如果发现捕获到异常,会就把connection不提交,直接回滚,所以我们在配置声明式事务的时候会有一个参数是什么异常类,默认应该是runtimexcepttion吧...
回复于: 2013-11-05 11:13:45
去看看Java的动态代理就明白原理是怎么回事了。
回复于: 2013-11-05 14:33:01
我的建议是这样的,首先回答出IOC和AOP,然后简单的简绍这两个东西,说的不需要太多,但是要达到重点,然后,直接offer,