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

Springboot應(yīng)用中@EntityScan和@EnableJpaRepositories的使用詳解

 更新時(shí)間:2025年08月25日 14:35:02   作者:安迪源文  
在Spring Boot中,若Entity和Repository不在主包內(nèi),需通過@EntityScan和@EnableJpaRepositories指定掃描路徑,注意basePackages需完整覆蓋,避免重復(fù)注冊或Bean缺失錯誤

Springboot應(yīng)用開發(fā)中使用JPA時(shí),通常在主應(yīng)用程序所在包或者其子包的某個位置定義我們的EntityRepository,這樣基于Springboot的自動配置,無需額外配置,我們定義的EntityRepository即可被發(fā)現(xiàn)和使用。但有時(shí)候我們需要定義EntityRepository不在應(yīng)用程序所在包及其子包,那么這時(shí)候就需要使用@EntityScan@EnableJpaRepositories了。

上面提到的EntityRepository指的是通過類似下面的方式定義的EntityRepository :

@Entity
@Table(name = "grade")
public class Grade {
   // 省略具體內(nèi)容
}
@Repository
public interface GradeRepository extends JpaRepository<Grade, Long>, JpaSpecificationExecutor<Grade> {
   // 省略具體內(nèi)容
}

@EntityScan

@EntityScan用來掃描和發(fā)現(xiàn)指定包及其子包中的Entity定義。其用法如下:

@EntityScan(basePackages = {"com.department.entities","come.employee.entities"})

如果多處使用@EntityScan,它們的basePackages集合能覆蓋所有被Repository使用的Entity即可,集合有交集也沒有關(guān)系。

但是如果不能覆蓋被Repository使用的Entity,應(yīng)用程序啟動是會出錯,比如:

Not a managed type: com.customer.entities.Customer

@EnableJpaRepositories

@EnableJpaRepositories用來掃描和發(fā)現(xiàn)指定包及其子包中的Repository定義。

其用法如下:

@EnableJpaRepositories(basePackages = {"com.department.repositories","come.employee.repositories"})

如果多處使用@EnableJpaRepositories,它們的basePackages集合不能有交集,并且要能覆蓋所有需要的Repository定義。

如果有交集,相應(yīng)的Repository會被嘗試反復(fù)注冊,從而遇到如下錯誤:

The bean ‘OrderRepository’, defined in xxx, could not be registered. A bean with that name has already been defined in xxx and overriding is disabled.

如果不能覆蓋所有需要的Repository定義,會遇到啟動錯誤:

Parameter 0 of method setCustomerRepository in com.service.CustomerService required a bean of type ‘come.repo.OrderRepository’ that could not be found.

總結(jié)

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

相關(guān)文章

  • java接口冪等性的實(shí)現(xiàn)方式

    java接口冪等性的實(shí)現(xiàn)方式

    本文介紹了在不同層面上實(shí)現(xiàn)Java接口冪等性的方法,包括使用冪等表、Nginx+Lua和Redis、以及SpringAOP,通過這些方法,可以確保接口在多次請求時(shí)只執(zhí)行一次,避免重復(fù)處理和數(shù)據(jù)不一致,每種方法都有其適用場景和優(yōu)勢,通過實(shí)際測試驗(yàn)證了冪等性邏輯的有效性
    2025-01-01
  • springmvc組件中的HandlerMapping解析

    springmvc組件中的HandlerMapping解析

    這篇文章主要介紹了springmvc九大組件中的HandlerMapping解析,HandlerMapping表示的是一個URL與一個Handler(可以簡單的理解為Controller中有@RequestMapping注解的方法)之間的映射關(guān)系,需要的朋友可以參考下
    2023-09-09
  • gateway與spring-boot-starter-web沖突問題的解決

    gateway與spring-boot-starter-web沖突問題的解決

    這篇文章主要介紹了gateway與spring-boot-starter-web沖突問題的解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Spring Boot實(shí)戰(zhàn)之靜態(tài)資源處理

    Spring Boot實(shí)戰(zhàn)之靜態(tài)資源處理

    這篇文章主要介紹了Spring Boot實(shí)戰(zhàn)之靜態(tài)資源處理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Springboot雙mongodb配置方式

    Springboot雙mongodb配置方式

    這篇文章主要介紹了Springboot雙mongodb配置方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java實(shí)現(xiàn)下載文件到默認(rèn)瀏覽器路徑

    java實(shí)現(xiàn)下載文件到默認(rèn)瀏覽器路徑

    這篇文章主要介紹了java實(shí)現(xiàn)下載文件到默認(rèn)瀏覽器路徑,具有很好的參考價(jià)值,希望對的大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Java實(shí)現(xiàn)數(shù)組反轉(zhuǎn)翻轉(zhuǎn)的方法實(shí)例

    Java實(shí)現(xiàn)數(shù)組反轉(zhuǎn)翻轉(zhuǎn)的方法實(shí)例

    本篇文章主要介紹了Java實(shí)現(xiàn)數(shù)組反轉(zhuǎn)翻轉(zhuǎn)的方法實(shí)例,詳細(xì)的介紹了3種實(shí)現(xiàn)方法,有興趣的可以了解一下。
    2017-04-04
  • java實(shí)現(xiàn)日歷效果的示例代碼

    java實(shí)現(xiàn)日歷效果的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何使用java實(shí)現(xiàn)打印某年全部的日歷信息,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-12-12
  • 詳解@ConditionalOnMissingBean注解的作用

    詳解@ConditionalOnMissingBean注解的作用

    這篇文章主要介紹了詳解@ConditionalOnMissingBean注解的作用,@ConditionalOnMissingBean,它是修飾bean的一個注解,主要實(shí)現(xiàn)的是,當(dāng)你的bean被注冊之后,如果而注冊相同類型的bean,就不會成功,它會保證你的bean只有一個,需要的朋友可以參考下
    2023-10-10
  • Spring Boot整合elasticsearch的詳細(xì)步驟

    Spring Boot整合elasticsearch的詳細(xì)步驟

    這篇文章主要介紹了Spring Boot整合elasticsearch的詳細(xì)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評論