大家好,我在使用 Spring MVC,我有一個(gè)問(wèn)題。我有這個(gè)交易的bean定義:<tx:annotation-driven transaction-manager="txManager"/> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean>但是當(dāng)我運(yùn)行我的應(yīng)用程序時(shí),我遇到了這個(gè)異常:2019-05-24 18:14:51 DEBUG osbdLoggingFailureAnalysisReporter - 由于異常 org.springframework.beans.factory.support.BeanDefinitionOverrideException,應(yīng)用程序無(wú)法啟動(dòng):定義了名稱為“org.springframework.transaction.config.internalTransactionAdvisor”的無(wú)效 bean 定義在類路徑資源 [org/springframework/transaction/annotation/ProxyTransactionManagementConfiguration.class] 中:無(wú)法注冊(cè) bean 定義 [Root bean: class [null]; 范圍=; 摘要=假;懶惰初始化=假;自動(dòng)接線模式=3;依賴檢查=0;autowireCandidate=真;初級(jí)=假;factoryBeanName=org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration; factoryMethodName=交易顧問(wèn);初始化方法名=空;destroyMethodName=(推斷);在類路徑資源 [org/springframework/transaction/annotation/ProxyTransactionManagementConfiguration.class]] 中為 bean 'org.springframework.transaction.config.internalTransactionAdvisor' 定義:已經(jīng)有 [Root bean: class [org.springframework.transaction.interceptor. BeanFactoryTransactionAttributeSourceAdvisor]; 范圍=; 摘要=假;懶惰初始化=假;自動(dòng)接線模式=0;依賴檢查=0;autowireCandidate=真;初級(jí)=假;工廠BeanName=null;工廠方法名=空;初始化方法名=空;destroyMethodName=null] 綁定。在 org.springframework.beans.factory.support.DefaultListableBeanFactory.registerBeanDefinition(DefaultListableBeanFactory.java:897) 在 org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader。當(dāng)我評(píng)論 tx:annotation-drive 時(shí),一切正常,但帶有 @Transactional 注釋的方法不起作用。我究竟做錯(cuò)了什么?我的 gradle 依賴項(xiàng):compile group: 'org.springframework', name: 'spring-web', version: '5.1.5.RELEASE' compile group: 'org.springframework', name: 'spring-webmvc', version: '5.1.5.RELEASE' compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.1.3.RELEASE'compile group: 'org.springframework', name: 'spring-jdbc', version: '5.1.5.RELEASE'
1 回答

哆啦的時(shí)光機(jī)
TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
您需要做的是啟用Bean Overriding
. 從 Spring 2.1 開始,默認(rèn)情況下禁用此功能。你得到一個(gè)異常,因?yàn)橐呀?jīng)有一個(gè)用相同名稱定義的 bean。
Spring 2.1 發(fā)行說(shuō)明摘錄:發(fā)行說(shuō)明 2.1 - Bean Overriding
長(zhǎng)話短說(shuō),您需要將其添加到您的application.properties
文件中:
spring.main.allow-bean-definition-overriding=true
或者在 yaml 中:
spring: main: allow-bean-definition-overriding: true
添加回答
舉報(bào)
0/150
提交
取消