https://dagger.dev/dev-guide/subcomponents
funktioniert nicht. Es fehlen einige Teile, Bindungen.
Code: Select all
import dagger.Component;
import dagger.Module;
import dagger.Provides;
import dagger.Subcomponent;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
public class Example {
public static void main(String[] args) {
ApplicationComponent appComponent = DaggerExample_ApplicationComponent.builder().build();
System.out.println("component: " + appComponent);
System.out.println("database1: " + appComponent.database());
System.out.println("database2: " + appComponent.database());
}
@Singleton
@Component(modules = DatabaseModule.class)
interface ApplicationComponent {
Database database();
}
@Module(subcomponents = DatabaseComponent.class)
static class DatabaseModule {
@Provides
@Singleton
Database provideDatabase(DatabaseComponent.Builder builder) {
return builder.build().database();
}
}
@Module
static class DatabaseImplModule {
@Provides
Schema provideSchema() {
return new Schema();
}
}
@Subcomponent(modules = DatabaseImplModule.class)
public interface DatabaseComponent {
Database database();
@Subcomponent.Builder
interface Builder {
DatabaseComponent build();
}
}
public static class Schema {}
public static class Database {
@Inject
Database(Schema schema) {}
}
}