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

關(guān)于spring中不同包中類名相同報錯問題的總結(jié)

 更新時間:2023年06月20日 10:13:32   作者:戴小碼  
這篇文章主要介紹了關(guān)于spring中不同包中類名相同報錯問題的總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

spring中不同包中類名相同報錯問題

問題

首先采用注解方式在cn.zy.spring.anno包中創(chuàng)建UserDao類

Demo:

@Repository("userDao")
public class UserDao {
? ? public void add(){
? ? ? ? System.out.println("dao...");
? ? }
}

接著在cn.zy.spring.jdbcTemplate包中創(chuàng)建UserDao類,并增加findObjeect測試方法。

Demo:

@Component("userDao")
public class UserDao {
? ? public void find(){
? ? ? ? System.out.println("cn.zy.spring.jdbcTemplate的userDao");
? ? }
}

創(chuàng)建junit測試類:

Demo:

public class TestIOC {
? ? @Test
? ? public void testUser(){
? ? ? ? ApplicationContext application = new ClassPathXmlApplicationContext("applicationContext.xml");
? ? ? ? UserDao userDao = (UserDao) application.getBean("userDao");
? ? ? ? userDao.find();
? ? }

運行結(jié)果報錯:

org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [applicationContext.xml]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'userDao' for bean class [cn.zy.spring.jdbcTemplate.UserDao] conflicts with existing, non-compatible bean definition of same name and class [cn.zy.spring.anno.UserDao]

分析原因

由于采用注解開發(fā),雖然兩個類在不同的包中,但是id卻相同,這就會導致創(chuàng)建了兩個相同的類,而spring是無法識別的。

解決辦法

將其中一個UserDao類的注解的name屬性改為其它值,只要不出現(xiàn)兩個相同的name值就可以。

心得

我猜想在spring的beanFactory并沒有對創(chuàng)建的對象進行按包分類,配置文件中配置的class屬性只是為反射提供創(chuàng)建對象的路徑而已。

beanFactory就像是一個對象池子,非常雜亂,在你加載spring的配置文件時,所有的對象及依賴關(guān)系都會被創(chuàng)建然后放在這個大池子中,使用的時候從里面取就可以了。

這點spring做的并不人性化,需要改進啊!

不同jar包類名相同怎么辦呀?

如果你在同一個項目中使用了不同的 jar 包,其中有兩個類名相同,那么這時候就需要用到類的全名(包括包名)。

例如,如果在你的項目中有兩個包,一個是 com.example.package1,另一個是 com.example.package2,且兩個包中都有一個類名為 MyClass,

那么你可以使用如下方式來區(qū)分這兩個類:

com.example.package1.MyClass
com.example.package2.MyClass

也就是使用類的全名來區(qū)分它們。

如果你想在代碼中使用這兩個類,你可以這樣寫:

import com.example.package1.M

總結(jié)

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

相關(guān)文章

  • 淺談Java模板引擎性能對比

    淺談Java模板引擎性能對比

    本篇文章主要介紹了淺談Java模板引擎性能對比 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 一文帶你玩轉(zhuǎn)Java異常處理

    一文帶你玩轉(zhuǎn)Java異常處理

    這篇文章主要為大家介紹一下Java中的異常處理機制,文中通過示例為大家進行了詳細的介紹,對我們學習有一定的幫助,感興趣的可以了解一下
    2022-08-08
  • Java中的Lambda表達式詳解

    Java中的Lambda表達式詳解

    這篇文章主要介紹了Java中的Lambda表達式詳解,Lambda 表達式是 JDK8 的一個新特性,可以取代大部分的匿名內(nèi)部類,寫出更優(yōu)雅的 Java 代碼,尤其在集合的遍歷和其他集合操作中,可以極大地優(yōu)化代碼結(jié)構(gòu),需要的朋友可以參考下
    2024-01-01
  • Spring?Boot中application配置文件的生效順序及應用范圍

    Spring?Boot中application配置文件的生效順序及應用范圍

    Spring?Boot的一個重要特性就是它的自動配置,這一特性在很大程度上依賴于名稱為application的配置文件,本文將詳細介紹在Spring?Boot中,這些配置文件的加載順序以及每份文件的應用范圍,需要的朋友可以參考下
    2024-03-03
  • SpringBoot集成Mybatis-plus并實現(xiàn)自動生成相關(guān)文件的示例代碼

    SpringBoot集成Mybatis-plus并實現(xiàn)自動生成相關(guān)文件的示例代碼

    Mybatis-Plus是一個優(yōu)秀的Mybatis增強工具,目前更新到3.1.1,本文通過示例代碼給大家介紹SpringBoot集成Mybatis-plus并實現(xiàn)自動生成相關(guān)文件的問題,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • Windows中在IDEA上安裝和使用JetBrains Mono字體的教程

    Windows中在IDEA上安裝和使用JetBrains Mono字體的教程

    這篇文章主要介紹了Windows IDEA上安裝和使用JetBrains Mono字體的教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Spring?Boot?Shiro?auto-configure工作流程詳解

    Spring?Boot?Shiro?auto-configure工作流程詳解

    這篇文章主要為大家介紹了Spring?Boot?Shiro?auto-configure工作流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Kafka?Producer中的消息緩存模型圖解詳解

    Kafka?Producer中的消息緩存模型圖解詳解

    Kafka中消息是以Topic進行分類的,生產(chǎn)者生產(chǎn)消息,消費者消費消息,都是面向Topic的,下面這篇文章主要給大家介紹了關(guān)于Kafka?Producer中消息緩存模型的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • JAVA 多線程編程之CountDownLatch使用詳解

    JAVA 多線程編程之CountDownLatch使用詳解

    當多個線程需要協(xié)調(diào)和同步執(zhí)行任務時,Java中的CountDownLatch(倒計時門閂)是一個常用的工具類,本文將介紹 CountDownLatch 的基本原理、用法以及示例代碼,需要的朋友可以參考下
    2023-05-05
  • Java構(gòu)建JDBC應用程序的實例操作

    Java構(gòu)建JDBC應用程序的實例操作

    在本篇文章里小編給大家整理了一篇關(guān)于Java構(gòu)建JDBC應用程序的實例操作,有興趣的朋友們可以學習參考下。
    2021-03-03

最新評論

安阳市| 湟源县| 公主岭市| 吉木乃县| 九江市| 福鼎市| 来宾市| 滁州市| 长泰县| 绥阳县| 邹城市| 六安市| 瓮安县| 靖安县| 尉犁县| 石河子市| 新化县| 深水埗区| 永丰县| 峨眉山市| 伊吾县| 称多县| 浮山县| 行唐县| 宜兰县| 遵义市| 忻城县| 哈尔滨市| 湘潭县| 阿鲁科尔沁旗| 黑河市| 门头沟区| 遵义市| 呼玛县| 小金县| 青浦区| 福贡县| 玉环县| 通江县| 清河县| 北宁市|