现在我在配置文件里添加了数据库类型的事务,并且添加了一个拦截器,具体程序如下:
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<bean
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<value>*Bo</value>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
然后写了个junit测试用例,
public void testSvcCallRMBySPS() throws Exception {
//资源订单同步文件头,暂时注释掉--start
File fileName = new File("D://测试数据//181101071130S1103783_1.xml");
SoSyncRequestDocument soDoc = SoSyncRequestDocument.Factory.parse(fileName);
String s= null;
try{
spsInterfaceSvrBo = (ISpsInterfaceSvrBo) ContextFactory.getBeanFactory().getBean("spsInterfaceSvrBo");
s = spsInterfaceSvrBo.svcCallRMBySPS("soSyncRequest", soDoc.toString());
System.out.println("@@@@@@@@@@@@@2222222222");
}catch(Exception ex){
System.out.println("ttttt2222222222");
ex.printStackTrace();
}
System.out.println("gggggg2222222222");
System.out.println(s);
}
问题出现了,在执行完spsInterfaceBo.svcCallRMBySPS("soSyncRequest",soDoc.toString())中的每一条语句之后,程序就死掉了,连接也死在那里了,因为这个时候开始执行hibernate的延迟加载。 如果说是什么关联的原因导致延迟加载错误,也应该出现异常,我对异常都用RunTimeException进行捕获并打印堆栈,现在不知道为何捕捉不到任何异常。 我的log的显示级别是info的。
为什么不显示异常呢?我是用这个测试用例调用本地的bo,然后在本地的bo中操作数据库,难道这样就不行吗?我有个同事也遇到这个问题,他没有管这个问题,但是我想问为什么?
不知道上面的描述具体吗?大家在答疑的过程中有什么疑惑,请给我回帖,我再贴上去!
分享到:
相关推荐
分布式事务处理是现代微服务架构中的重要组成部分,特别是在SpringCloud这样的框架中,处理跨服务的事务一致性至关重要。本文将深入探讨分布式事务的处理方法,包括AT模式、CTT模式、Saga模式,以及相关的隔离机制,...
- AOP 是Spring提供的另一项关键特性,它允许将关注点(如日志记录、事务管理)分离出来,作为独立的模块进行处理。这样,开发者可以专注于核心业务逻辑,而无需在每个需要的地方重复相同的代码。 **3. Spring的...
- **JDBC抽象**:Spring的JdbcTemplate和SimpleJdbcTemplate提供了模板方法,简化了SQL操作,减少了可能出现的资源泄露问题。 - **JMS支持**:Spring提供了对Java消息服务(JMS)的全面支持,包括消息生产者、消费...
Seata 则解决了分布式环境下的事务一致性问题。 Spring Cloud Alibaba 的优势在于它结合了阿里巴巴在国内市场的经验和实践,提供了更加符合国内开发者习惯的工具和服务。通过 Spring Cloud Alibaba,开发者可以更...
此外,Spring的AOP模块是其一大特色,它允许我们在不修改代码的情况下,通过切面来实现方法拦截和事务管理等功能。`AspectJ`是Spring AOP的底层实现,通过编译时或运行时织入增强代码,提供强大的AOP支持。如果你对...
- **事务管理**:Spring支持声明式和编程式事务管理,简化了事务控制,确保数据一致性。 2. **SpringMVC**: - **模型-视图-控制器(MVC)架构**:SpringMVC将应用程序分为模型、视图和控制器三个部分,使得职责...
3. **配置MyBatis**:编写MyBatis的全局配置文件`mybatis-config.xml`,包含数据源、事务管理等信息。编写Mapper接口和对应的XML映射文件,实现SQL语句与Java方法的绑定。 4. **创建Controller**:在SpringMVC中...
Spring的@Transactional注解可以用来声明事务边界,如果在事务内发生异常,会自动回滚事务,保持数据的完整性。 总之,"SSM考试模板增删改查.rar"中的代码示例涵盖了SSM框架的基础应用,是理解并实践Java Web开发中...
Spring的jar包主要包括:spring-context、spring-beans、spring-aop、spring-jdbc、spring-tx等,这些库使得开发者可以轻松地管理对象依赖关系,实现松耦合,同时提供强大的事务控制和数据访问支持。 Struts作为MVC...
Spring还提供了对数据库访问、事务管理、安全等方面的强大支持。 4. **MyBatis**:MyBatis是一个优秀的持久层框架,它简化了SQL与Java代码的交互,通过XML或注解的方式将SQL语句和Java代码进行映射,使得开发者能更...
面试中,MyBatis的优缺点、与Hibernate的对比,#{}和${}的区别,动态SQL的使用,以及XML映射文件的标签和映射方式等都是常见问题。例如,#{}用于预编译处理,${}则是在SQL拼接时直接替换,而MyBatis的动态SQL主要...
4. 创建Spring配置,管理Bean,配置事务管理器。 5. 编写Struts Action,处理业务逻辑,调用Spring管理的Service进行数据库操作。 6. 设计JSP页面,利用Struts提供的标签进行显示。 7. 集成测试,确保各个部分正常...
Spring还提供了AOP(面向切面编程)功能,可以用于事务管理、日志记录等。 然后,Hibernate作为ORM(对象关系映射)工具,将Java对象与数据库表对应起来。在例子中,可能有一个实体类,比如`User.java`,它代表...
- Spring框架:Spring是一个轻量级的IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)容器,它简化了Java企业级应用的开发,降低了对象间的耦合度,支持事务管理、数据源...
SSM(Spring、SpringMVC、MyBatis)是一个经典的Java web开发框架组合,广泛应用于企业级应用系统。本项目是基于SSM的学习实践项目,旨在帮助开发者深入理解和掌握这三大框架的集成与使用。 首先,Spring框架是整个...
在校园网站项目中,Spring可以用来管理数据库连接、事务处理、安全控制等方面,使得代码更加模块化和易于测试。 【Hibernate框架】Hibernate是一个强大的对象关系映射(ORM)工具,简化了Java应用与数据库之间的...
在处理过程中,Spring的事务管理确保了数据的一致性。 购物车功能是网上商城的重要组成部分,涉及商品添加、删除、修改数量等操作。在SSM框架下,购物车的实现通常会利用Session或者Cookie存储用户临时选择的商品...
这是我对之前工作或学习中知识积累的总结,其中绝大部分...所以有问题,别怪我喽~目录:SpringSpring BootMybatis及多数据源DruidAOP事务ThymeleafShiroJwtDubboZookeeperKafkaElasticsearch日志系统分布式锁...等等
12. **Spring框架**:Spring是Java应用开发中最流行的应用框架,它提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等特性,简化了企业级应用的开发。 本教程合集通过30套实用的视频教程,详细讲解了...
- Spring框架:作为Java开发的常用框架,Spring可以帮助管理对象依赖,简化配置,提供事务处理等功能。 - Swing或JavaFX:用于构建游戏界面,处理用户交互。 通过"Hero_vs_Monster"项目,开发者不仅可以掌握Java...