Java SpringBoot scanBasePackages在不同的jar中找不到存储库
我有这样一个spring启动应用程序: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
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实际上需要这些指向这些包的显式指针,但至少现在它可以工作了。再次感谢!