首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

面试很囧。spring的声明式事务有关问题。

2012-03-13 
面试很囧。。spring的声明式事务问题。。今天面试被问Spring的声明式事务为何要加在业务层,还问加在业务层是怎

面试很囧。。spring的声明式事务问题。。
今天面试被问Spring的声明式事务为何要加在业务层,还问加在业务层是怎么实现控制事务的。。。

我一听就晕了。。。以前都是在hibernate中用session实现事务控制,话说这加在业务层的控制怎么作用到session上的??
难道声明式事务控制在底层依然是加在了dao层? spring是怎么知道dao层用的什么框架?

[解决办法]
其实就是AOP,说穿了就是通过动态代理来实现的,spring为你生成的对象都是代理对象。他不用关心你用什么框架还是JDBC之类的,他只需要你告诉他什么方法需要事务,那么他会这个方法原子操作了。具体的建议去了解一下反射和动态代理。了解过后你就清楚了
[解决办法]
业务层被看做是一个完整的可能是多个dao操作的原子流程,其中一个dao操作失败,则全部回滚。
spring aop对事务支持比较出色,有声明式事务和注解配置事务,都比较简单。具体配置网上很多。
[解决办法]
我就会简单的用,不知道为什么。比你更囧。。。
[解决办法]
因为dao知识负责单步数据库操作,Action只是负责与 client交互数据。 真正的业务处理是在service层,一个service方法就是我们的一个业务原子操作。 

控制用spring aop 拦截我们感兴趣的方法
[解决办法]

探讨

引用:

其实就是AOP,说穿了就是通过动态代理来实现的,spring为你生成的对象都是代理对象。他不用关心你用什么框架还是JDBC之类的,他只需要你告诉他什么方法需要事务,那么他会这个方法原子操作了。具体的建议去了解一下反射和动态代理。了解过后你就清楚了


这事务的aop代码加在哪层了我还没搞清楚。。。。

[解决办法]
探讨

因为dao知识负责单步数据库操作,Action只是负责与 client交互数据。 真正的业务处理是在service层,一个service方法就是我们的一个业务原子操作。

控制用spring aop 拦截我们感兴趣的方法

[解决办法]
首先给你讲Spring的声明式事务为何要加在业务层,
如果你对这方面的研究不熟悉的话。
你就说spring的核心就是aop,它就是为了把日志,
安全,性能和业务逻辑区别开。所以它要把Spring的声明式事务要加在业务层

还问加在业务层是怎么实现控制事务的
它是通过拦截器把你的方法拦截,用代理工厂产生一个对象。就这么简单
[解决办法]
呃。。
貌似业务层指的是service层吧。
不明白你们凭什么觉得事务是封装在dao层了
[解决办法]
AOP 配置的时候运用通配符 全部在你的service逻辑方法前切入事物控制,dao写到service里面是因为一个业务可能同时调用多个dao 而这多个dao构成同一个逻辑---事务的完成性,至于它是怎么实现的,去看源代码,其实事务的AOP 可以自己去写的
[解决办法]
探讨
引用:

引用:

其实就是AOP,说穿了就是通过动态代理来实现的,spring为你生成的对象都是代理对象。他不用关心你用什么框架还是JDBC之类的,他只需要你告诉他什么方法需要事务,那么他会这个方法原子操作了。具体的建议去了解一下反射和动态代理。了解过后你就清楚了


这事务的aop代码加在哪层了我还没搞清楚。。。。
……

热点排行