首页 > 解决方案 > springboot依赖类可以自动装配服务模块吗?

问题描述

我可以从 spring boot 中的依赖模块调用父模块中的类吗?假设我有一个项目 A springboot 应用程序,项目 B 是依赖项(公共模块)。我能够自动装配并使用 A 中的 B 类。但反之亦然。B 是依赖项,因此没有配置 yml 也没有给出版本。当我尝试说 Autowire aclass 时,它给了我 nulll。

标签: javaspringspring-bootpyml

解决方案


如果您的意思是 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...
  }
}

推荐阅读