Spring transaction practice, an error example:
package lin; import lin.dao.impl.ExchangeDaoLocator; import lin.dao.impl.TestDaoLocator; import lin.domain.Exchange; import lin.domain.Test; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jdbc.core.JdbcTemplate; public class DbTest { public static void main(String[] args) { try { ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("ApplicationContext.xml"); JdbcTemplate jdbcTemplate = (JdbcTemplate) applicationContext.getBean("jdbcTemplate"); jdbcTemplate.execute("select * from dual"); ExchangeDaoLocator locator1 = (ExchangeDaoLocator) applicationContext.getBean("exchangeDaoLocator"); Exchange exchange = locator1.findById("HK"); System.out.println(exchange.getExchangeCode()); TestDaoLocator locator2 = (TestDaoLocator) applicationContext.getBean("testDaoLocator"); Test test = locator2.findById("1"); System.out.println(test.getC2()); System.out.println("----------------End----------------"); } catch (Exception e) { e.printStackTrace(); } } }
<bean id="abstractDaoLocator" class="lin.dao.AbstractDaoLocator" abstract="true"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="exchangeDaoLocator" class="lin.dao.impl.ExchangeDaoLocator" parent="abstractDaoLocator"> </bean> <bean id="testDaoLocator" class="lin.dao.impl.TestDaoLocator" parent="abstractDaoLocator"> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"/> <property name="defaultTimeout" value="15"/> <property name="rollbackOnCommitFailure" value="true"/> </bean> <aop:config> <!-- Normal Example --> <aop:advisor pointcut="execution(* lin.DbTest..*(..))" advice-ref="requiresNewTxAdvice" /> <!-- Wrong Example - java.lang.ClassCastException: $Proxy8 incompatible with lin.dao.impl.ExchangeDaoLocator --> <aop:advisor pointcut="execution(* lin.dao.impl.*.findById(..))" advice-ref="requiresNewTxAdvice" /> </aop:config> <tx:advice id="requiresNewTxAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="*" propagation="REQUIRES_NEW" /> </tx:attributes> </tx:advice>
相关推荐
在Java编程中,`java.lang.ClassCastException`是一个运行时异常,通常发生在强制类型转换时,如果尝试将一个对象转换为其非兼容类型时就会抛出。这个异常表明在编译时可能成功的类型转换,在运行时被证明是错误的。...
"java.lang.NoClassDefFoundError错误解决办法" java.lang.NoClassDefFoundError错误是一种常见的Java错误,它发生在Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误。下面是该错误的解决...
Load canal adapter: es7 failed java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassCastException: ...canal-adapter1.1.5报错, 将client-adapter.es7x-1.1.5-SNAPSHOT-jar-with-dependencies....
在Android开发中,Gson库是一个非常常用的工具,它由Google提供,用于将Java对象转换为JSON字符串,反之亦然。然而,在混淆代码时,可能会遇到一些问题,导致Gson无法正常工作。本文将深入探讨这些问题及其解决方案...
在Java编程中,XML(可扩展标记语言)是一种被广泛用于数据存储和交换的格式。为了处理XML文档,Java提供了多种API,其中最常用的包括DOM、SAX、DOM4J和JDOM。以下是对这些方法的详细介绍: 1. DOM(Document ...
- **java.lang.ClassCastException**:当尝试将对象强制转换为不兼容的类型时抛出。 - **java.lang.NegativeArraySizeException**:创建具有负长度的数组时抛出。 - **java.lang.SecurityException**:在安全管理器...
8. **java.lang.VirtualMachineError**: 表示虚拟机严重损坏或资源不足。这可能是硬件故障、操作系统崩溃或JVM bug的结果。 9. **java.lang.ArithmeticException**: 当执行如整数除以零这样的非法算术运算时,会抛...
7. **java.lang.ClassCastException**: 当试图将对象强制转换为其非兼容类型时抛出。在进行类型转换前,应确认对象的实际类型。 8. **java.lang.NegativeArraySizeException**: 创建具有负长度的数组会导致此异常。...
2. **初始化PopupWindow**:在Java代码中,我们首先需要实例化PopupWindow对象,传入之前创建的布局文件。例如: ```java View popupView = LayoutInflater.from(context).inflate(R.layout.popup_menu, null); ...
二:保证 ImageCycleView的 父布局是LinearLayout 否则可能会报异常,比如 java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.RelativeLayout$...
- **`java.lang.ClassCastException`**:当试图将对象强制转换为不兼容类型时抛出。 - **`java.lang.AbstractMethodError`**:当子类没有重写抽象父类的抽象方法时抛出。 - **`java.lang.ClassCircularityError`**:...
8. **`java.lang.NegativeArraySizeException`**:数组负下标异常。当试图创建一个具有负大小的数组时,会抛出此异常。数组的大小必须为正整数。 9. **`java.io.IOException`**:输入/输出异常。在处理I/O操作(如...
JAVA常见的错误 JAVA 是一种流行的编程语言,广泛应用于软件开发领域。然而,在使用 JAVA 开发软件时,经常会遇到一些常见的错误。本文档将对这些错误进行总结和解释,以帮助开发者更好地避免和解决这些错误。 1. ...
8. **`java.lang.NegativeArraySizeException`**: 创建一个负长度的数组时抛出。数组长度必须为非负整数。 9. **`java.lang.SecurityException`**: 安全管理器阻止了请求的操作。在执行敏感操作(如文件系统...
8. **java.lang.NegativeArraySizeException**: 创建负长度的数组会导致此异常。数组长度必须是正整数。 9. **java.io.IOException**: 这是一个广义的异常,用于表示输入/输出操作中的错误,如文件读写问题。...
* java.lang.ClassCastException: + 解决方案:检查类的继承关系,是否存在多继承或循环继承的问题,尝试使用 instanceof 运算符来检查对象的类型。 * java.lang.UnsupportedClassVersionError: Bad version ...
java.lang.UnsupportedClassVersionError 是一种不支持的类版本错误,指的是在程序中 Java 虚拟机试图从读取某个类文件,但是发现该文件的主、次版本号不被当前 Java 虚拟机支持的时候,抛出的异常。 33. java.lang...
**类型转换**是Java编程中的常见操作,但是不安全的类型转换会导致`ClassCastException`。当试图将一个对象强制转换为它实际上不是的类型时,就会抛出这个异常。在你的例子中,`MorphDynaBean`不能被转换为`xxx`,...
8. **java.lang.NegativeArraySizeException**: 创建具有负大小的数组时,会抛出此异常。确保数组大小始终为非负整数。 9. **java.io.IOException**: 这是一个输入/输出异常,表示在读写文件、网络通信等I/O...
`java.util.ConcurrentModificationException` 是一个在 Java 中常见的运行时异常,它通常发生在多线程环境中,当一个线程正在遍历一个集合(如 `ArrayList`, `HashMap` 等),而另一个线程同时尝试修改这个集合时。...