亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 tx annotation-driven 會產生沖突?

為什么 tx annotation-driven 會產生沖突?

嚕嚕噠 2022-12-15 15:01:58
大家好,我在使用 Spring MVC,我有一個問題。我有這個交易的bean定義:<tx:annotation-driven transaction-manager="txManager"/>    <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">        <property name="dataSource" ref="dataSource"/>    </bean>但是當我運行我的應用程序時,我遇到了這個異常:2019-05-24 18:14:51 DEBUG osbdLoggingFailureAnalysisReporter - 由于異常 org.springframework.beans.factory.support.BeanDefinitionOverrideException,應用程序無法啟動:定義了名稱為“org.springframework.transaction.config.internalTransactionAdvisor”的無效 bean 定義在類路徑資源 [org/springframework/transaction/annotation/ProxyTransactionManagementConfiguration.class] 中:無法注冊 bean 定義 [Root bean: class [null]; 范圍=; 摘要=假;懶惰初始化=假;自動接線模式=3;依賴檢查=0;autowireCandidate=真;初級=假;factoryBeanName=org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration; factoryMethodName=交易顧問;初始化方法名=空;destroyMethodName=(推斷);在類路徑資源 [org/springframework/transaction/annotation/ProxyTransactionManagementConfiguration.class]] 中為 bean 'org.springframework.transaction.config.internalTransactionAdvisor' 定義:已經有 [Root bean: class [org.springframework.transaction.interceptor. BeanFactoryTransactionAttributeSourceAdvisor]; 范圍=; 摘要=假;懶惰初始化=假;自動接線模式=0;依賴檢查=0;autowireCandidate=真;初級=假;工廠BeanName=null;工廠方法名=空;初始化方法名=空;destroyMethodName=null] 綁定。在 org.springframework.beans.factory.support.DefaultListableBeanFactory.registerBeanDefinition(DefaultListableBeanFactory.java:897) 在 org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader。當我評論 tx:annotation-drive 時,一切正常,但帶有 @Transactional 注釋的方法不起作用。我究竟做錯了什么?我的 gradle 依賴項: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 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

您需要做的是啟用Bean Overriding. 從 Spring 2.1 開始,默認情況下禁用此功能。你得到一個異常,因為已經有一個用相同名稱定義的 bean。

Spring 2.1 發行說明摘錄:發行說明 2.1 - Bean Overriding

長話短說,您需要將其添加到您的application.properties文件中:

spring.main.allow-bean-definition-overriding=true

或者在 yaml 中:

spring:
   main:
     allow-bean-definition-overriding: true


查看完整回答
反對 回復 2022-12-15
  • 1 回答
  • 0 關注
  • 78 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號