欢迎光临
我们一直在努力

第314篇 Hilt 使用与原理:Android 专属的 DI 方案

承接上一篇《依赖注入入门:构造注入与字段注入》,那一篇讲清了「为什么要 DI」,这一篇讲「Hilt 具体怎么做」。Hilt 不是凭空出现的——它是 Dagger 针对 Android 生命周期做的重新设计,理解它必须先理解 Dagger 原本的问题。

结论先行:Hilt 相对 Dagger 的核心改进是「用 Android 的组件树替代了自定义的作用域链」,让作用域与生命周期有了天然对应关系。 这带来的结果是:几乎不需要写自定义 Scope,@Singleton / @ActivityScoped 就能覆盖绝大多数场景。

一、Dagger 原本的问题

Dagger 2 在纯 Java/Kotlin 项目里很好用,但在 Android 上有三个不适配:

问题一:作用域靠自定义注解声明,与生命周期脱钩。

// Dagger 原生写法:自定义作用域
@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface PerActivity {}

@PerActivity
@Module
public class ActivityModule {
@Provides @PerActivity
ActivityCache provideCache() { return new ActivityCache(); }
}

问题:

赞(0)
未经允许不得转载:171主机测评 » 第314篇 Hilt 使用与原理:Android 专属的 DI 方案
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址