Skip to content

依赖注入

对于FastAPI,其原生提供了一定的依赖注入能力,可以在Endpoints中使用Depends进行注入。但这种注入级别与管理还是比较初级,很多情况下无法满足复杂依赖注入需求,比如在一个Controller | Service | Repo | Model的架构中,我们可能需要在Controller中注入Service,Service中注入Repo或者其它Service等需求。

也可能在以上环节中注入一些独立的工具依赖。所以在此引入了Dependency_Injector这个库,依赖这个库,可以实现类似于Java Spring的依赖注入功能。

参考文档

Dependency_Injector库的参考文档:Doc

注意点

  1. 与FastAPI集成时,如果在Endpoint进入注入,仍然要使用FastAPI的Depends来包裹Provide,而不可以单使用Provide。
  2. Container容器,一旦内容有异步providers,那么整个容器也需要是异步的。