![](/img/trans.png)
[英]Spring boot: Inclusion of external jar dependency with scanBasePackages
[英]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存儲庫,但有關於存儲庫掃描如何工作的更多解釋:
嘿,你應該在@SpringBootApplication標簽@ComponentScan(basePackages = {“some.package”})后把它放在你的主類中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.