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);
 | |
|     }
 | |
| 
 | |
| }
 |