32 lines
1.0 KiB
Java
32 lines
1.0 KiB
Java
import com.google.inject.AbstractModule;
|
|
import java.time.Clock;
|
|
|
|
import services.ApplicationTimer;
|
|
import services.AtomicCounter;
|
|
import services.Counter;
|
|
|
|
/**
|
|
* This class is a Guice module that tells Guice how to bind several
|
|
* different types. This Guice module is created when the Play
|
|
* application starts.
|
|
*
|
|
* Play will automatically use any class called `Module` that is in
|
|
* the root package. You can create modules in other locations by
|
|
* adding `play.modules.enabled` settings to the `application.conf`
|
|
* configuration file.
|
|
*/
|
|
public class Module extends AbstractModule {
|
|
|
|
@Override
|
|
public void configure() {
|
|
// Use the system clock as the default implementation of Clock
|
|
bind(Clock.class).toInstance(Clock.systemDefaultZone());
|
|
// Ask Guice to create an instance of ApplicationTimer when the
|
|
// application starts.
|
|
bind(ApplicationTimer.class).asEagerSingleton();
|
|
// Set AtomicCounter as the implementation for Counter.
|
|
bind(Counter.class).to(AtomicCounter.class);
|
|
}
|
|
|
|
}
|