请教一个小弟思考一天都没法理解的诡异问题,探讨问题原因

问题描述

主要框架: Spring3.0 + ibatis2.3 + Hibernate3.2 + Struts2.2(struts2-spring-plugin-2.2.1.jar)大体代码如下:class TestAction extends ActionSupport { private AppSevice appService; //set/get 方法省略 public String commit() { //第一种方式, appService.commit(xxx); //第二种方式 appService = (AppService)AppContextFactory.getSpringContext().getBean("appService"); appService.commit(xxx); }}public class AppContextFactory {private static ClassPathXmlApplicationContext context = null;public static BeanFactory getSpringContext() {if (context == null) {context = new ClassPathXmlApplicationContext(new String[] { "applicationContext-test.xml" });}return (BeanFactory) context;}}补充说明appService.commit()中分为业务流程(使用hibernate)交易和业务功能交易(使用ibatis)问题来了,当使用第一种方式时一旦业务功能交易出错,业务功能交易可以完全回滚,业务流程交易无法回滚;当使用第二种方式时,可以实现业务流程业务功能交易的一致性,全部都回滚;希望各位高手给些意见,很想把这个问题搞清楚;

解决方案

applicationContext-test.xml这里边没有事物控制吧
解决方案二:
你这个类 应该继承 ApplicationContextAware,然后在spring里面随便定义一个bean
解决方案三:
private AppSevice appService; //set/get 方法省略 public String commit() { //第一种方式, appService.commit(xxx);使用AopUtils.isAopProxy(appService)验证下是否是代理对象,如果不是 检查配置文件哪个环节出错了。可参考下http://www.iteye.com/topic/1122740http://jinnianshilongnian.iteye.com/blog/1423971

时间: 2024-11-11 03:10:18

请教一个小弟思考一天都没法理解的诡异问题,探讨问题原因的相关文章

异常-java核心技术中一个关于数组的例子不理解,请教大家

问题描述 java核心技术中一个关于数组的例子不理解,请教大家 Person是Employer的父类,Employer有个新方法setBonus,代码如下 Employer[] emprs ={new Employer("张三"),new Employer("李四")}; Person[] ps =emprs; ps[0] = new Person("小明");//运行时该行报错ArrayStoreException emprs[0].setBo

c++-小弟大一只学了C++现在在自学C#,想请教一个问题

问题描述 小弟大一只学了C++现在在自学C#,想请教一个问题 我现在在做一个简单的棋类游戏,因为赶时间,老师说用C#做界面会简单点,我现在只用C#画了一个界面,什么功能都没有,用C++做内核,请问我该怎么把这个界面和C++连接起来?小弟用的是VS2013,会不会需要其他软件呢?我还什么都不懂,希望大神帮我解答一下,万分感谢! 解决方案 你搜搜托管c++,可以全部用c++的代码写 C#封装UI界面得exe程序,用托管c++封装一个dll,然后托管c++ dll中写你的c++实现 解决方案二: 用C

显示-小弟请教一个fragment中的点击问题

问题描述 小弟请教一个fragment中的点击问题 请教下..我主界面一个Activity中用的Tabhost上边用的ViewPager里面四个碎片..我怎么从第一个Fragment界面里面一个按键点击后变成第三个显示的Fragment,并且底下的TabHost也会随着改变.. 解决方案 ViewPager有SetCurrentItem,你传进去索引就行了

指针-请教一个顶层CONST和底层CONST的问题

问题描述 请教一个顶层CONST和底层CONST的问题 最近在看C++PRIMER这本书,对于书上所说的这个顶层和底层CONST的问题小弟不是很明白 所以特来这里想请教各位一下, CONST INT CI=42; CONST INT *P2=&CI;//允许改变P2的值,这是一个底层CONST 这句话不是很明白, 为什么能改变P2的值呢?P2不是一个指针常量吗?自身的值是不能 改变的呀,P2指向的对象CI的值也是不能改变的呀,所以等号前面是顶层CONST,后面 是底层CONST我 是这么理解的也

java-小弟想请教一个问题.对于大神们来说很简单

问题描述 小弟想请教一个问题.对于大神们来说很简单 小弟的这个程序很简单 但是对于小弟来说实在是太难了 本来前面的已经实现了,但是算总分的时候第二个人的成绩总是要和第一个成绩相加,这是程序这是运行后的结果就想问问大神怎么做把两个人的总分成绩分开 求大神帮帮忙哈 解决方案 zhongfen[i]=bianliang; 下一行加上 bianliang=0; 解决方案二: 变量 bianliang 在每次输入学生姓名是清零.

c++-请教一个变量取地址的问题

问题描述 请教一个变量取地址的问题 CBitmap qwe; qwe.LoadBitmapW(IDB_BITMAP1); yy[1].brush.CreatePatternBrush(&qwe); 请问下这段代码中,如果最后面不加&的话编译就通不过,提示不能从CBTMAP转成 CBTMAP*我的理解是,指针都是按地址操作的,而这个是一个值,必须要取其地址才能跟 指针通用,请问这么理解对么 解决方案 指针的问题,,,内存的问题.编译报错报的是类型的错误.其实指针本质上也是在内存里定义一块地方

请教一个sql语句该怎么写

问题描述 请教一个sql语句该怎么写 table_A id a b c d table_B_id tabel_B id e f g 怎么查询的到table_A_id:这一行的able_B_id,的对应的tabel_B行 中e等于特定值.有点乱希望理解. 解决方案 select * from table_A a join table_B b on a.table_B_id = b.id where b.e = xxx; xxx为条件 解决方案二: 确实有点乱,想帮你都帮不了

方法-请教一个模拟登陆的问题!!求高手帮忙!!

问题描述 请教一个模拟登陆的问题!!求高手帮忙!! 模拟登陆需求具体流程是这样的: 1.访问登陆页面. 2.返回页面里 某个 input的值(用于每次登陆传参用,此值为动态的,每次打开页面都会变化). 3.模拟post登陆提交. 4.接收返回页面. ---------------- 实现过程与问题: 1.正常模拟访问页面. 2.正常返回页面,(抓取所需动态值). 3.模拟提交(问题出现在这,因为1已经访问过了页面,而3步的模拟提交还要访问一次,所有造成了所需的 input动态值发生变化了.) 问

泛型-请教一个JAVA的基础问题

问题描述 请教一个JAVA的基础问题 有如下的一个接口,叫做:GenericDao,有几点不理解: 1.虽然知道E,K,V都是泛型,但是一直不太理解有什么用,比如:>这段代码有什么用,实现什么功能?如果不写会有什么影响? 2.为什么在类的定义中还可以extends,一般不都是 class A1 extends A,这么写么?为什么可以class A1 package com.patsnap.common.bean; import com.patsnap.common.entity.DBVersi