使用以下代码打开事务发生报错
<tx:annotation-driven />
报错信息如下
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.interceptor.TransactionInterceptor#0': Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'transactionManagerBeanName' of bean class [org.springframework.transaction.interceptor.TransactionInterceptor]: Bean property 'transactionManagerBeanName' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
Bean property 'transactionManagerBeanName' is not writable or has an invalid setter method 是说该类没有对应参数的set方法,但是由于TransactionInterceptor是Spring自带的类,所以报错时感觉挺奇怪的,进入类后发现,该类中有对应的参数及set方法,然后又查了下返回类型的问题,似乎也没问题。
查了一下午,直到最后才想到,有可能是包冲突的问题,看了一下Gradle里的Spring包,发现果然有一个spring-hibernate的包与spring-tx中有同样的类org.springframework.transaction.interceptor.TransactionInterceptor,删除spring-hibernate的包后,程序正常启动。