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

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

掃描另一個包中的存儲庫

掃描另一個包中的存儲庫

UYOU 2022-10-12 10:11:30
我試圖讓我的 Spring Boot 應用程序(使用 Spring Data REST)來發現Repository在另一個包和項目中定義的類。我想知道我是否可以配置應用程序來檢測Repository類而不必依賴@EnableJpaRepositories.作為背景,我有兩個項目。一,我們稱之為data項目、包含Entity和Repository類。另一個,我們稱之為它expense-tracker,是一個Spring Boot應用程序,它Spring Data REST作為依賴項幫助為項目中的Repository類生成 REST 端點data。這是項目的結構所有的Repository類都擴展PagingAndSortingRepository接口。下面是一個例子。package com.example.data.repositories;import com.example.data.entities.Transaction;import org.springframework.data.repository.PagingAndSortingRepository;public interface TransactionRepository extends PagingAndSortingRepository<Transaction, Long> {}我試圖設置scanBasePackageClassesfor @SpringBootApplication(見下文),但沒有奏效。package com.example.expensetracker;import com.example.data.NoOpClass;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.autoconfigure.domain.EntityScan;@SpringBootApplication(scanBasePackageClasses = NoOpClass.class)@EntityScan(basePackageClasses = NoOpClass.class)public class ExpenseTrackerApplication {  public static void main(String[] args) {    SpringApplication.run(ExpenseTrackerApplication.class, args);  }}日志消息顯示 Spring 沒有檢測到任何Repository類。2019-04-17 09:33:02.465  INFO 8279 --- [           main] c.e.e.ExpenseTrackerApplication          : No active profile set, falling back to default profiles: default2019-04-17 09:33:09.852  INFO 8279 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.2019-04-17 09:33:10.141  INFO 8279 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 238ms. Found 0 repository interfaces.但是,當我切換到使用@EnableJpaRepositories(見下文)時,Spring 檢測到了這些Repository類。我的期望是@SpringBootApplicationwithscanBasePackageClasses應該允許 Spring 檢測Repository類。是不是這樣,或者我必須使用另一個注釋,類似于EntityScan,告訴 Spring Boot 在哪里掃描Repository類?
查看完整描述

1 回答

?
慕絲7291255

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

我不認為 Spring 會看到你的存儲庫類,除非你使用EnableJpaRepositories但你不必在你的SpringBootApplicaiton類中使用這個注釋。


您可以添加@ComponentScan(basePackages = {"com.example.data"})到您的SpringBootApplication類,然后將以下類添加到您的數據項目中。


package com.example.data;


import org.springframework.boot.autoconfigure.EnableAutoConfiguration;

import org.springframework.context.annotation.Configuration;

import org.springframework.data.jpa.repository.config.EnableJpaRepositories;


@EnableJpaRepositories

@EnableAutoConfiguration

@Configuration

public class SpringConfiguration {

}

這樣可以增加模塊化,因為費用跟蹤器項目不知道數據項目需要什么樣的配置。它將控制權傳遞給數據項目,讓它進行所需的配置。


希望這可以幫助。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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