Guice: Unterschiede zwischen Singleton.class und @Singleton

Was ist in Guice der Unterschied zwischen:

// Inside your AbstractModule subclass:
@Override
public void configure() {
    bind(Service.class).to(ServiceImpl.class).in(Singleton.class);
}

Und:

@Override
public void configure() {
    bind(Service.class).to(ServiceImpl.class);
}

@Provides @Singleton
public ServiceImpl providesService() {
    return new ServiceImpl();
}

Sind sie beide gleich? Wann würdest du eins gegen das andere benutzen? Danke im Voraus.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage