本身使用Spring中的注解管理事务是一件非常简单的事情,但还是在实际项目中遇到了一点问题,现将其记录下来, 也希望
能和明白的人士进行探讨。
一. 首先就是在Spring 配置文件中进行配置
<bean id =" transactionManager "
class =" org.springframework.jdbc.datasource.DataSourceTransactionManager " >
< property name =" dataSource " ref =" dataSource " />
</ bean >
< tx:annotation-driven transaction-manager =" transactionManager " />
二.然后就是在类或接口中的方法进行注解操作
如:
此处为DAO接口
@Transactional(propagation=Propagation.REQUIRED)
public interface LogicDao{
@Transactional(propagation=Propagation.REQUIRED)
public int[] insertQuestion(QuestionA questionUser,QuestionB questionNaire);
@Transactional(propagation=Propagation.REQUIRES_NEW)
public boolean insertQuestion2(QuestionA questionUser,QuestionquestionNaire);
}
然后我们在service层中调用dao
@Transactional(propagation=Propagation.REQUIRED)
public int[] insertQuestion(QuestionUser questionUser,QuestionNaire questionNaire)
{
Object obqe;
Object obqu;
int[] seqs = new int[2];
obqe = this.getQdao().insertQeuestion(questionNaire);
obqu = this.getQdao().insertQeuestionUser(questionUser);
if(obqu!=null && obqe!=null)
{
seqs[0]=(Integer)obqe;
seqs[1]=(Integer)obqu;
return seqs;
}
else
{
return null;
}
}
此时,spring管理事务就算是OK了,原理没有说,这里只讲应用。
但是我在项目中遇到了一个问题
我在声明dao中的方法throws Exception 如下
@Transactional(propagation=Propagation.REQUIRED)
public interface LogicDao{
@Transactional(propagation=Propagation.REQUIRED)
public int[] insertQuestion(QuestionA questionUser,QuestionB questionNaire) throws Exception;
@Transactional(propagation=Propagation.REQUIRES_NEW)
public boolean insertQuestion2(QuestionA questionUser,QuestionquestionNaire)throws Exception;
}
然后重新在service层中的insertQuestion方法中对其进行try catch中进行捕获,此时发现spring中的事务就不起作用了。
现在我也没有查出是为什么,还是对spring理解的不深,如何有明白的人留个脚印。
分享到:
相关推荐
面试高级开发的期间整理的面试题目,记录我面试遇到过的spring题目以及答案 目录 spring ThreadLocal的底层对象; 为什么@Service和@Repository放到实现类上面而不是接口类上面; spring 三种注入(就是从spring容器...
最流行技术Struts2.1 +Spring 2.5.1+ibatis2.3整合开发而成,这与我以前发布的版本中最大特色是整合了Spring2.5.1中的注解功能和半自动化工具ibatis技术,这是本示例的两大特色,简化了配置文件的烦锁,希望能给更多喜欢...
在学习的过程中,我遇到了一些挑战,比如配置文件的理解和注解的正确使用,但通过查阅官方文档和阅读相关书籍,我逐渐解决了这些问题。最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了...
在学习的过程中,我遇到了一些挑战,比如配置文件的理解和注解的正确使用,但通过查阅官方文档和阅读相关书籍,我逐渐解决了这些问题。最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了...
在学习的过程中,我遇到了一些挑战,比如配置文件的理解和注解的正确使用,但通过查阅官方文档和阅读相关书籍,我逐渐解决了这些问题。最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了...
avaEE开发的颠覆者 Spring Boot实战 完整版+书签+pdf+源码.rar JavaEE开发的颠覆者 Spring ..., 当你学完《JavaEE开发的颠覆者: Spring Boot实战》后,你将能使用Spring Boot 解决Java EE 开发中所遇到的绝大多数问题
pom xml冲突是件挺恶心的事儿 还有就是 遇到了导入myeclipse里 resource文件不编译到指定目录的问题 ">maven建的web项目 用Myeclipse可直接导入 基于注解的零配置struts2 1 页面跳转 2 查数据库 3 事务控制到...
在学习的过程中,我遇到了一些挑战,比如配置文件的理解和注解的正确使用,但通过查阅官方文档和阅读相关书籍,我逐渐解决了这些问题。最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了...
在学习的过程中,我遇到了一些挑战,比如配置文件的理解和注解的正确使用,但通过查阅官方文档和阅读相关书籍,我逐渐解决了这些问题。最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了...
在学习的过程中,我遇到了一些挑战,比如配置文件的理解和注解的正确使用,但通过查阅官方文档和阅读相关书籍,我逐渐解决了这些问题。最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了...
在学习的过程中,我遇到了一些挑战,比如配置文件的理解和注解的正确使用,但通过查阅官方文档和阅读相关书籍,我逐渐解决了这些问题。最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了...
在学习的过程中,我遇到了一些挑战,比如配置文件的理解和注解的正确使用,但通过查阅官方文档和阅读相关书籍,我逐渐解决了这些问题。最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了...
在学习的过程中,我遇到了一些挑战,比如配置文件的理解和注解的正确使用,但通过查阅官方文档和阅读相关书籍,我逐渐解决了这些问题。最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了...
在学习的过程中,我遇到了一些挑战,比如配置文件的理解和注解的正确使用,但通过查阅官方文档和阅读相关书籍,我逐渐解决了这些问题。最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了...
在学习的过程中,我遇到了一些挑战,比如配置文件的理解和注解的正确使用,但通过查阅官方文档和阅读相关书籍,我逐渐解决了这些问题。最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了...
在学习的过程中,我遇到了一些挑战,比如配置文件的理解和注解的正确使用,但通过查阅官方文档和阅读相关书籍,我逐渐解决了这些问题。最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了...
在学习的过程中,我遇到了一些挑战,比如配置文件的理解和注解的正确使用,但通过查阅官方文档和阅读相关书籍,我逐渐解决了这些问题。最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了...
在学习的过程中,我遇到了一些挑战,比如配置文件的理解和注解的正确使用,但通过查阅官方文档和阅读相关书籍,我逐渐解决了这些问题。最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了...
在学习的过程中,我遇到了一些挑战,比如配置文件的理解和注解的正确使用,但通过查阅官方文档和阅读相关书籍,我逐渐解决了这些问题。最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了...
在学习的过程中,我遇到了一些挑战,比如配置文件的理解和注解的正确使用,但通过查阅官方文档和阅读相关书籍,我逐渐解决了这些问题。最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了...