簡體   English   中英

SpringBoot scanBasePackages在不同的jar中找不到存儲庫

[英]SpringBoot scanBasePackages does not find repository in different jar

我有一個像這樣的spring boot應用程序:

package my.package;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration;

@SpringBootApplication
public class MySpringBootApp{

    public static void main(String[] args) {
        SpringApplication.run(MySpringBootApp.class, args);
    }

}

我在包my.package.service有一個服務

@Service
public class MyService {

private ServiceInADifferentJar  dep;

public MySerivce(ServiceInADifferentJar dep) {
this.dep = dep;
}

}

ServiceInADifferentJar類是不同JAR中的@Service注釋類,我將其作為maven依賴項包含在內。

JAR具有以下文件結構:

src/main/java
- some.package.repository
    MyRepository.java
- some.package.service
    ServiceInADifferentJar.java

MyRepository是一個@Repository注釋接口,它擴展了Spring Data接口。

ServiceInADifferentJar在其構造函數MyRepository注入了MyRepository

當我啟動應用程序時,我收到一個無法找到ServiceInADifferentJar的錯誤。

然后我將它添加到我的SpringBootApp中

@SpringBootApplication(scanBasePackages = {"some.package"})

找到了ServiceInADifferentJar ,但沒有找到MyRepository

為什么不? 為什么不掃描其他JAR中some.package所有子包?

*編輯*

存儲庫

package some.package.repository;

    @Repository
    public interface MyRepository extends MongoRepository<SomeEntity, String> {

    }

您可能希望使用EnableMongoRepositories批注,以便找到您的Mongo存儲庫。

@EnableMongoRepositories(basePackages = "some.package.repository")

以下問題,盡管是關於JPA存儲庫,但有關於存儲庫掃描如何工作的更多解釋:

無法在Spring Boot中自動加載@Repository注釋接口

嘿,你應該在@SpringBootApplication標簽@ComponentScan(basePackages = {“some.package”})后把它放在你的主類中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM