title: Clean solution to ensure a singleton service is created on app initialization
body: <p>I want to ensure a singleton service is created on application boot. I could add it as injection parameter to my AppComponent and not use it at all, but that looks a bit <em>dirty</em>. Right now I'm going with this solution:</p>
  <pre><code>import { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';
  import { NavigationService } from './navigation.service';
  
  @NgModule()
  export class NavigationServiceModule {
      public static forRoot(): ModuleWithProviders&lt;NavigationServiceModule&gt; {
          return {
              ngModule: NavigationServiceModule,
              providers: [
                  {
                      provide: APP_INITIALIZER,
                      deps: [NavigationService],
                      multi: true,
                      useFactory: () =&gt; () =&gt; { }
                  }
              ]
          }
      }
  }
  </code></pre>
  <p>But don't really love it, too. Any ideas how this could be achieved best?</p>