Sobes.tech
Back to questions
Junior — Middle
69

Какие аннотации в Hilt используются для включения классов в граф зависимостей?

Companies where asked
Ubic

Answer from AI

sobes.tech AI

В Hilt для включения классов в граф зависимостей используются следующие основные аннотации:

  • @Inject — помечает конструктор, поле или метод, чтобы Hilt мог предоставить зависимость.

  • @Module — обозначает класс, который предоставляет зависимости через методы с аннотацией @Provides.

  • @InstallIn — указывает, в какой компонент (например, SingletonComponent, ActivityComponent) устанавливается модуль.

  • @Singleton и другие скоупы — задают область жизни зависимости.

Пример:

@Module
@InstallIn(SingletonComponent::class)
object NetworkModule {
    @Provides
    @Singleton
    fun provideApiService(): ApiService {
        return Retrofit.Builder()
            .baseUrl("https://example.com")
            .build()
            .create(ApiService::class.java)
    }
}

class Repository @Inject constructor(private val apiService: ApiService) {
    // ...
}

Таким образом, @Inject и @Module с @InstallIn — ключевые аннотации для включения классов в граф зависимостей Hilt.