解决方案 »
- ie9的乱码问题
- 各位大虾求助,在myeclipse 8.5中新建立一个web项目.......
- 折磨我很久的值类型和引用类型的传参问题
- 紧急求助!
- axis2客户端怎么设置超时时间?服务器是tomcat
- 如今这年头找工作,如果真功夫编程我倒不怕,搞些鸡毛蒜皮的外语我看我就是造个计算机也进不了一般有10 几个人的公司,所以还是在家研究
- 关于Applet和Servlet通信.
- 在struts中,Action类线程安全?????
- 如何学习struts
- java.lang.Integer 的用法
- 求教 GWT的上传和下载
- 为什么使用myeclipse8.5和9.0开发EXTJS时候就爆卡,6.5却没事?
也就是说,如果是在一个类中的一个方法A,调用本类中的另一个方法B,则方法B也不会被当做另一个事物来处理。如,public ClassA {
public void methodA() {
// ...一些DB操作 // 调用另一方法
mothodB();
} public void methodB() {
// ...一些DB操作
}
}事务切片为ClassA的所有方法,这时调用ClassA.methodA, 则这里只有一个事务
但是如果,代码是这样,public ClassA {
@Resource
ClassB classB; public void methodA() {
// ...一些DB操作 // 调用ClassB的另一方法
classB.mothodA();
}
}public ClassB {
public void methodA() {
// ...一些DB操作
}
}事务切片为ClassA和ClassB的所有方法,这时调用ClassA.methodA, 则这里就有两个事务。有人知道怎么让第一种情况,也成为两个事务吗?
public void methodAB() {
logger.debug("AopTest.methodAB()");
methodA();
methodB();
}调用methodAB()方法的是代理对象, methodA();methodB();这2个方法是AopTest对象本身,所以就不能拦截了。
public class AopTest {
private static final Logger logger = Logger.getRootLogger(); //self对象也是由spring注入 private AopTest self;
public void methodA() {
logger.debug("AopTest.methodA()");
}
public void methodB() {
logger.debug("AopTest.methodB()");
}
public void methodAB() {
logger.debug("AopTest.methodAB()");
self.methodA();
self.methodB(); }
}
private static final Logger logger = Logger.getRootLogger(); //self对象也是由spring注入 private AopTest self;
private AopTest self public void methodA() {
logger.debug("AopTest.methodA()");
}
public void methodB() {
logger.debug("AopTest.methodB()");
}
public void methodAB() {
logger.debug("AopTest.methodAB()");
self.methodA();
self.methodB();
}}
root cause得15分
solution得25分