【发布时间】:2018-11-15 00:05:29
【问题描述】:
我有一个这样的 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。
当我启动应用程序时,我收到一个错误,即找不到ServiceInADifferentJar。
然后我将它添加到我的 SpringBootApp 中
@SpringBootApplication(scanBasePackages = {"some.package"})
找到了ServiceInADifferentJar,但没有找到MyRepository。
为什么不呢?为什么其他 JAR 中 some.package 的所有子包都没有被扫描到?
* 编辑 *
存储库
package some.package.repository;
@Repository
public interface MyRepository extends MongoRepository<SomeEntity, String> {
}
【问题讨论】:
-
你能添加你的存储库接口吗?
-
@Berger 我编辑了我的问题
-
你在用 Maven 构建吗?
-
@TheHeadRush 是的,两者都是 maven 项目。
标签: java spring-boot