package app; import com.google.inject.Provider; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class MyAppExecutorServiceProvider implements Provider<ExecutorService> { // This is how we enforce the singleton-ness of our app's global ExecutorService, classic singelton style // We could have also used an enum private static final ExecutorService singletonExecutorService = Executors.newSingleThreadExecutor(); @Override public ExecutorService get() { return singletonExecutorService; } }