欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決springboot生成bean名稱沖突(AnnotationBeanNameGenerator)

 更新時間:2022年03月24日 11:51:11   作者:生產(chǎn)隊隊長  
這篇文章主要介紹了解決springboot生成bean名稱沖突(AnnotationBeanNameGenerator),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

springboot生成bean名稱沖突

問題描述

我們再使用springboot的時候,在不同的文件目錄下,可能存在相同名稱的java類,這個時候會報bean name沖突錯誤

首先我們來了解下,springboot生成bean名稱的原理

當(dāng)Component,Respository,Service,Controller注解的value樹形沒有自定義時,會根據(jù)類的名稱生成一個短的bean name。例如: com.xyz.FooServiceImpl -> fooServiceImpl

也就是說,會忽略路徑,生成首字母小寫的bean name,所以,上面哪種情況會導(dǎo)致沖突

但是由于我們平時編碼的習(xí)慣,幾乎避免了這個重名文件的存在,所以,沒遇到過這個錯誤

解決問題

使用自定義AnnotationBeanNameGenerator

@SpringBootApplication
@RestController
@ComponentScan(nameGenerator = DatabasesApplication.SpringBeanNameGenerator.class)
public class DatabasesApplication {
    public static class SpringBeanNameGenerator extends AnnotationBeanNameGenerator {
        @Override
        protected String buildDefaultBeanName(BeanDefinition definition) {
            return definition.getBeanClassName();
        }
    }
    public static void main(String[] args) {
        SpringApplication.run(DatabasesApplication.class, args);
    }
    @GetMapping("/hello")
    public String hello(){
        return "hello databases!";
    }
}

我是在做springboot實現(xiàn)多數(shù)據(jù)源時還有個其他地方使用

MapperScan注解中使用

@MapperScan(basePackages = "com.databases.databases.dao.one", sqlSessionFactoryRef = "oneSqlSessionFactory",nameGenerator = DatabasesApplication.SpringBeanNameGenerator.class)

自定義bean對象重名問題

在已經(jīng)有對象的情況下,設(shè)置bean加載的時候注意不要重名

不然啟動不了,會給你提示在配置文件中添加spring.main.allow-bean-definition-overriding=true  這個東西的意思是當(dāng)有重名bean的時候覆蓋上一個,不建議使用,畢竟每個bean對象都是獨特的

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

相關(guān)文章

  • java 反射和動態(tài)代理詳解及實例代碼

    java 反射和動態(tài)代理詳解及實例代碼

    這篇文章主要介紹了java 反射和動態(tài)代理詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • 基于params、@PathVariabl和@RequestParam的用法與區(qū)別說明

    基于params、@PathVariabl和@RequestParam的用法與區(qū)別說明

    這篇文章主要介紹了方法參數(shù)相關(guān)屬性params、@PathVariabl和@RequestParam用法與區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 詳解hashCode()和equals()的本質(zhì)區(qū)別和聯(lián)系

    詳解hashCode()和equals()的本質(zhì)區(qū)別和聯(lián)系

    這篇文章主要介紹了詳解hashCode()和equals()的本質(zhì)區(qū)別和聯(lián)系,本文先對兩種方法作了介紹,然后對二者聯(lián)系進行分析,具有一定參考價值,需要的朋友可以了解下。
    2017-09-09
  • java處理圖片背景顏色的方法

    java處理圖片背景顏色的方法

    這篇文章主要為大家詳細介紹了java處理圖片背景顏色的方法,藍底寸照批量轉(zhuǎn)換為白底,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Java建造者設(shè)計模式詳解

    Java建造者設(shè)計模式詳解

    這篇文章主要為大家詳細介紹了Java建造者設(shè)計模式,對建造者設(shè)計模式進行分析理解,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Java基于JavaMail實現(xiàn)向QQ郵箱發(fā)送郵件

    Java基于JavaMail實現(xiàn)向QQ郵箱發(fā)送郵件

    這篇文章主要為大家詳細介紹了Java基于JavaMail實現(xiàn)向QQ郵箱發(fā)送郵件的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Java compareTo用法詳解

    Java compareTo用法詳解

    在Java編程中,有時候我們需要對對象進行比較和排序,為了實現(xiàn)這一目標(biāo),Java提供了一個非常有用的接口叫做Comparable,以及一個重要的方法compareTo,下面我們就來看看compareTo的具體用法吧
    2023-09-09
  • SpringBoot使用Editor.md構(gòu)建Markdown富文本編輯器示例

    SpringBoot使用Editor.md構(gòu)建Markdown富文本編輯器示例

    這篇文章主要介紹了SpringBoot使用Editor.md構(gòu)建Markdown富文本編輯器示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • SpringBoot整合Javamail實現(xiàn)郵件發(fā)送功能

    SpringBoot整合Javamail實現(xiàn)郵件發(fā)送功能

    郵件發(fā)送是一個很普遍的功能,springboot整合了相關(guān)的starter,本文給大家介紹了可以實現(xiàn)一個簡單的郵件發(fā)送功能的實例,文中通過代碼給大家介紹的非常詳細,感興趣的朋友可以參考下
    2023-12-12
  • MyBatis綁定錯誤提示BindingException:Invalid bound statement (not found)的解決方法

    MyBatis綁定錯誤提示BindingException:Invalid bound statement (not f

    這篇文章主要介紹了MyBatis綁定錯誤提示BindingException:Invalid bound statement (not found)的解決辦法,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧
    2017-01-01

最新評論