最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot2基于重復(fù)創(chuàng)建bean的問題及解決

 更新時間:2023年06月20日 10:29:37   作者:普通網(wǎng)友  
這篇文章主要介紹了SpringBoot2基于重復(fù)創(chuàng)建bean的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

SpringBoot2重復(fù)創(chuàng)建bean的解決

今天在跑程序的時候報了一個重復(fù)創(chuàng)建事務(wù)的異常:

***************************
APPLICATION FAILED TO START
***************************

Description:

The bean ‘org.springframework.transaction.config.internalTransactionAdvisor’, defined in class path resource [org/springframework/transaction/annotation/ProxyTransactionManagementConfiguration.class], could not be registered. A bean with that name has already been defined and overriding is disabled.

Action:

Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

是ProxyTransactionManagementConfiguration.class這個bean在創(chuàng)建時重復(fù)了,springboot的自動裝配和我的程序同時創(chuàng)建了相同類型的bean。

之所以報這個異常是因為在Spring2中增加了防止bean重復(fù)覆蓋的策略,如果有重復(fù)則會直接報出異常,而不是像從前一樣默默覆蓋,導(dǎo)致你的bean被莫名替換,難以排查問題。

stackoverflow上的解答如下:

原文地址:https://stackoverflow.com/questions/51367566/trouble-when-changing-spring-boot-version-from-2-0-3-release-to-2-1-0-build-snap

我這邊程序的解決方案是忽略spring的自動裝配,禁止TransactionAutoConfiguration即可:

@SpringBootApplication(exclude = TransactionAutoConfiguration.class)

Spring注入Bean細(xì)節(jié)--解決Bean名稱重復(fù)問題

問題描述:

org.springframework.context.annotation.ConflictingBeanDefinitionException

問題原因:

在使用注解配置Bean的過程中,存在名稱相同的情況,導(dǎo)致項目啟動失敗

解決辦法

1)在配置實例化注解時,指定別名

在mapper中使用@Repository注解來指定別名

//項目其他包中也存在相同的類名稱DepartmentMapper,這里使用value來指定別名
//正常情況下,因為配置文件中已經(jīng)配置了mapper包的掃描,所以可以省略@Repository注解,如果發(fā)生上述沖突,考慮使用別名來解決
@Repository(value="DepartmentMapper2")
public interface DepartmentMapper {
?? ?//此處省略各種CRUD方法
}

2)在Service中指定所依賴的mapper

//這里也指定了service的別名
@Service(value="DepartmentService2")
public class DepartmentServiceImpl implements DepartmentService{
?? ?//這里指定依賴哪一個Mapper,默認(rèn)情況下使用ByName按類名來指定
?? ?@Resource(name="DepartmentMapper2")
?? ?private DepartmentMapper departmentMapper;
?? ?//省略各種service方法
}?? ?

如果service的類名也沖突了怎么辦?

在service中,使用@Service配置在實現(xiàn)類上,如果指定別名,可以利用value屬性來指定,另外,@Service中默認(rèn)括號中的字符串即是value的值,所以value可以省略

@Service("DepartmentService2")

對應(yīng)Controller

@Resource(name="DepartmentService2")
private DepartmentService departmentService;

心得

在配置Bean的過程中所指定的別名相當(dāng)于以往XML中Bean屬性id的值

<bean id="beanname" class="xxx.xxx.Xxx"></bean>

再復(fù)習(xí)@Resource這個注解

//@Resource注入順序: 1.同時指定name和type,那么按照byname和bytype匹配唯一符合條件的bean裝配
// ? ? ? ? ? ? ? ? ? 2.指定name或者type,則按照指定方式匹配,默認(rèn)按name匹配,一旦指定type則不再使用屬性名匹配
// ? ? ? ? ? ? ? ? ? 3.如果都不指定,則按照屬性名(屬性名為類名首字母小寫)匹配,如果沒有匹配到,按照屬性數(shù)據(jù)類型匹配
// ? ? ? ? ? ? ? ? ? 以上不匹配則拋出異常
//@Resource 默認(rèn)按照ByName注入Bean
//也就是尋找id為“DepartmentService”的Bean
@Resource
private DepartmentService departmentService;
//所以可以指定name屬性來改變默認(rèn)規(guī)則
//這樣就尋找id為“DepartmentService2”的Bean
@Resource(name="DepartmentService2")
private DepartmentService departmentService;
//也可以那個指定class來使用ByType注入
@Resource(type=DepartmentService.class)
private DepartmentService departmentService;
//注意import時要導(dǎo)正確的包

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Spring Boot配置文件之多環(huán)境配置

    詳解Spring Boot配置文件之多環(huán)境配置

    本篇文章主要介紹了詳解Spring Boot配置文件之多環(huán)境配置 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • java?Spring?Boot的介紹與初體驗

    java?Spring?Boot的介紹與初體驗

    大家好,本篇文章主要講的是java?Spring?Boot的介紹與初體驗,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Java util.List如何實現(xiàn)列表分段處理

    Java util.List如何實現(xiàn)列表分段處理

    這篇文章主要介紹了Java util.List如何實現(xiàn)列表分段處理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • Java中String對象的深入理解

    Java中String對象的深入理解

    String對象作為Java語言中重要的數(shù)據(jù)類型之一,是我們平時編碼最常用的對象之一,因此也是內(nèi)存中占據(jù)空間最大的一個對象,然而很多人對它是一知半解,今天我們就來好好聊一聊這個既熟悉又陌生的String,需要的朋友可以參考下
    2023-05-05
  • SpringBoot淺析緩存機制之Ehcache?2.x應(yīng)用

    SpringBoot淺析緩存機制之Ehcache?2.x應(yīng)用

    EhCache?是一個純Java的進(jìn)程內(nèi)緩存框架,具有快速、精干等特點。它是Hibernate中的默認(rèn)緩存框架。Ehcache已經(jīng)發(fā)布了3.1版本。但是本文的講解基于2.x版本
    2022-08-08
  • java 非對稱加密算法RSA實現(xiàn)詳解

    java 非對稱加密算法RSA實現(xiàn)詳解

    這篇文章主要介紹了java 非對稱加密算法RSA實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • 淺談Mybatis #和$區(qū)別以及原理

    淺談Mybatis #和$區(qū)別以及原理

    這篇文章主要介紹了淺談Mybatis #和$區(qū)別以及原理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 關(guān)于任務(wù)調(diào)度框架quartz使用(異常處理,解決恢復(fù)后多次調(diào)度處理)

    關(guān)于任務(wù)調(diào)度框架quartz使用(異常處理,解決恢復(fù)后多次調(diào)度處理)

    這篇文章主要介紹了關(guān)于任務(wù)調(diào)度框架quartz使用(異常處理,解決恢復(fù)后多次調(diào)度處理),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • vscode快速引入第三方j(luò)ar包發(fā)QQ郵件

    vscode快速引入第三方j(luò)ar包發(fā)QQ郵件

    這篇文章主要介紹了vscode快速引入第三方j(luò)ar包發(fā)QQ郵件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Maven Optional依賴屬性的含義及妙用

    Maven Optional依賴屬性的含義及妙用

    這篇文章主要為大家介紹了Maven Optional依賴屬性的含義及妙用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05

最新評論

格尔木市| 镇平县| 兴隆县| 长武县| 罗源县| 阳山县| 广元市| 民勤县| 盐山县| 民丰县| 元朗区| 岳普湖县| 龙江县| 晋城| 鸡泽县| 宁晋县| 普兰县| 和田市| 边坝县| 武冈市| 丽水市| 彝良县| 尤溪县| 龙陵县| 大田县| 革吉县| 常熟市| 都江堰市| 清流县| 合水县| 拜城县| 惠水县| 鄄城县| 东辽县| 娄底市| 金门县| 泊头市| 武宁县| 长寿区| 泽库县| 唐山市|