package controllers; import javax.inject.*; import play.*; import play.mvc.*; import services.Counter; /** * This controller demonstrates how to use dependency injection to * bind a component into a controller class. The class contains an * action that shows an incrementing count to users. The {@link Counter} * object is injected by the Guice dependency injection system. */ @Singleton public class CountController extends Controller { private final Counter counter; @Inject public CountController(Counter counter) { this.counter = counter; } /** * An action that responds with the {@link Counter}'s current * count. The result is plain text. This action is mapped to * GET requests with a path of /count * requests by an entry in the routes config file. */ public Result count() { return ok(Integer.toString(counter.nextCount())); } }