【发布时间】:2019-12-10 12:54:05
【问题描述】:
我有 2 个项目。
- demo-parent 项目(spring boot 应用程序)中定义的所有 API 合约(接口)
- demo-child 项目(spring boot 应用程序)中定义的实现
- demo-parent 是 demo-child 的依赖,在 demo-child 的 pom.xml 中定义
在 demo-parent 中:
AccessAPI.java
public interface AccessAPI {
void call();
}
SpringDemoParentApplication.java
@SpringBootApplication
public class SpringDemoParentApplication {
@Autowired
private AccessAPI accessAPI;
public static void main(String[] args) {
SpringApplication.run(SpringDemoParentApplication.class, args);
}
@PostConstruct
void exec() {
accessAPI.call();
}
}
在 demo-child 我有服务的实现:
AccessAPIImpl.java
@Service
public class AccessAPIImpl implements AccessAPI {
@Override
public void call() {
System.out.println("Executing from AccessAPIImpl");
}
}
努力实现的目标: 我必须能够独立构建这些项目,并通过类路径传递 demo-child 项目 jar 以选择实现并在运行 demo-parent 时注入所有实现。 如:
>java -jar demo-parent.jar -cp demo-child.jar
我希望从 demo-child 中获取实现并自动注入,但它没有按预期工作。
注意:我不想在 demo-parent 上添加 demo-child 依赖,必须在运行时获取 implementations/dependency。
请检查 Git 存储库:
https://github.com/anthonyvk/spring-demo-child
https://github.com/anthonyvk/spring-demo-parent
【问题讨论】:
标签: java spring spring-boot maven dependency-injection