java - springboot依赖类可以自动装配服务模块吗?
问题描述
我可以从 spring boot 中的依赖模块调用父模块中的类吗?假设我有一个项目 A springboot 应用程序,项目 B 是依赖项(公共模块)。我能够自动装配并使用 A 中的 B 类。但反之亦然。B 是依赖项,因此没有配置 yml 也没有给出版本。当我尝试说 Autowire aclass 时,它给了我 nulll。
解决方案
如果您的意思是 A 具有来自 B 的接口的实现,并且您在模块 B 中定义了接口,那么 spring 可以在 B 中包含的组件中自动装配来自 A 的实现:
//contained in A
@Component
class BookRetrievalServiceImpl implements BookRetrievalService {
@Override
findBookById(String id){
//TODO do something
}
}
//contained in B
interface BookRetrievalService {
Book findBookById(String id);
}
//contained in B
@Component
class BookBillingService {
private BookRetrievalService bookRetrievalService;
// BookRetrievalServiceImpl gets autowired here.
public BookBillingService(BookRetrievalService bookRetrievalService){
this.bookRetrievalService = bookRetrievalService;
}
public void calculateBilling(String bookId){
//TODO retrieve book and calculate...
}
}
推荐阅读
- angular - 如何使用 Jasmine /Karma 在 Angular 单元测试中测试 If Else 块
- awk - 如何仅将某些空白列转换为制表符?
- r - 无法在 R Shiny 中重现 selectizeUpdate 的最小示例
- javascript - 计算 JavaScript 数组中最小值和最大值之间元素的总和
- css - Android Chrome 无法重复很长的背景图片
- javascript - Javascript添加点击事件以输入提交字段
- c - str[][20]是什么意思
- mysql - 无法访问远程 MySQL
- java - 为什么 Room 不从资产中填充数据库?
- algorithm - 伪代码 SVM(1 类和 2 类)