当前位置:编程学习 > JAVA >>

反射机制调用的方法如何配置spring事务?

接到一个项目,最老的版本 就用了一个ibatis 框架,连spring都没有用,
而且也没有command service 和dao 分层,
后来我们加了spring框架后,事务老是配置不成功。

项目没有用 struts ,就一个default servlet来控制所有非下载的请求, 
拿到command类的id,和方法名, 然后利用反射机制,invoke方法调用,
原本的事务都是自己写的,后来加了spring后 用过2中配置事务方式,aop和注解,
都没有办法在command层配置事务,配在service层事务是有效果的,就是在command层不起作用,
研究半天,发现可能是因为command层是用反射机制调用造成的。

因为我们是在原有的项目中修改和加东西,所以要加struts不太可能,要改的东西太多太多,所以目前事务一直有问题。

求高手帮忙,分析下,有没有方法在command层配置事务 --------------------编程问答-------------------- --------------------编程问答-------------------- 木油人知道吗? --------------------编程问答-------------------- --------------------编程问答-------------------- 自己顶起来~ --------------------编程问答-------------------- --------------------编程问答-------------------- 小弟才疏学浅 对你描述的东西  不甚理解啊

command层是什么?  对应MVC 中的C 吗?

如果是  控制层的话   为什么要在这一层加事物

一个单元控制要对应多少的原子逻辑   事物要加在需要的原子逻辑上

对于  dao--->service--->control     事物加在service上是正确的  一个事物内的所有操作都要在service中完成   退出service方法就等于退出了事物 --------------------编程问答-------------------- 使用Spring的事务模版吧, 可以解决你的问题.在需要用到的地方:
类似这样
pamirsTransactionTemplate.execute(new PamirsTransactionAction() {
            @Override
            public Object doInTransaction(PamirsTransactionStatus status) throws Exception { //需要放在事务控制里的代码}
}
事务模板的名字不一定是我这个,我这个是自定义的。 --------------------编程问答--------------------
引用 6 楼  的回复:
小弟才疏学浅 对你描述的东西 不甚理解啊

command层是什么? 对应MVC 中的C 吗?

如果是 控制层的话 为什么要在这一层加事物

一个单元控制要对应多少的原子逻辑 事物要加在需要的原子逻辑上

对于 dao--->service--->control 事物加在service上是正确的 一个事物内的所有操作都要在service中完成 退出service方法就等于退出了事……

恩,你说的没错,应该是这样的,但是这个项目原来没有分层,只有1层,业务逻辑全在里面,
spring是后加的,我们是希望不动原来代码的情况下,用spring事务。

还有,现在好多人习惯,都是直接把业务逻辑写在command层,然后service层是直接调用dao的,至少我原来的软件公司的项目基本都这样,但是用的struts,所以spring事务可以用。 --------------------编程问答--------------------
引用 7 楼  的回复:
使用Spring的事务模版吧, 可以解决你的问题.在需要用到的地方:
类似这样
pamirsTransactionTemplate.execute(new PamirsTransactionAction() {
            @Override
            public Object doInTransaction(PamirsTransactionStatus s……
饿
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,