Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringBoot scanBasePackages在不同的jar中找不到存储库_Java_Spring Boot - Fatal编程技术网

Java SpringBoot scanBasePackages在不同的jar中找不到存储库

Java SpringBoot scanBasePackages在不同的jar中找不到存储库,java,spring-boot,Java,Spring Boot,我有这样一个spring启动应用程序: package my.package; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springf

我有这样一个spring启动应用程序:

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;
}

}
serviceindifferentjar
是另一个JAR中的
@Service
注释类,我将其作为maven依赖项包含

JAR具有以下文件结构:

src/main/java
- some.package.repository
    MyRepository.java
- some.package.service
    ServiceInADifferentJar.java
MyRepository
是一个扩展Spring数据面的
@Repository
注释接口

ServiceInADifferentJar
MyRepository
注入其构造函数中

当我启动应用程序时,我得到一个错误,无法找到
ServiceInADifferentJar

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

@SpringBootApplication(scanBasePackages = {"some.package"})
找到了
serviceindifferentjar
,但没有找到
MyRepository

为什么不呢?为什么不扫描另一个JAR中的
some.package
的所有子包

*编辑*

存储库

package some.package.repository;

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

    }
package some.package.repository;
@存储库
公共接口MyRepository扩展了MongoRepository{
}

嘿,伙计,你应该把它放在@springbootplication标记后面的主类中 @ComponentScan(basePackages={“some.package”})

您可能希望使用注释,以便找到您的Mongo存储库

@EnableMongoRepositories(basePackages = "some.package.repository")
下面的问题,尽管是关于JPA存储库的,但对存储库扫描的工作原理有更多的解释:


你能添加你的存储库界面吗?@Berger我编辑了我的问题你是用Maven构建的吗?@TheHeadlush是的,两者都是Maven项目。我这样做了,但它仍然找不到存储库。谢谢,就是这样!我有点惊讶,Spring实际上需要这些指向这些包的显式指针,但至少现在它可以工作了。再次感谢!