title: @PostConstruct is not invoked for @ApplicationScoped on initialisation?
body: <p>I have faced with the following issue. I am using <code>Weld</code> implementation of the <code>CDI</code>.</p>
  
  <p>I have found that if a service is annotated with <code>@ApplicationScoped</code> then <code>@PostConstruct</code> section is not invoked until the first usage of the service. Here is a code to reproduce this behaviour:</p>
  
  <pre><code>import org.jboss.weld.environment.se.Weld;
  import org.jboss.weld.environment.se.WeldContainer; 
  
  import javax.annotation.PostConstruct;
  import javax.enterprise.context.ApplicationScoped;
  import javax.enterprise.inject.spi.CDI;
  
  public class TestCdi {
  
      public static void main(String[] args) {
          try (WeldContainer weldContainer = new Weld().containerId("test").initialize()) {
               FooService fooService = CDI.current().select(FooService.class).get();
  
               fooService.test();
               System.out.println("Done");
          }
      }
  
      @ApplicationScoped
      public static class FooService {
  
          @PostConstruct
          public void  init() {
              System.out.println("Post construct");
          }
  
          public void test() {
              System.out.println("test");
          }
      }
  }
  </code></pre>
  
  <p>So, if <code>fooService.test();</code> is commented, then <code>FooService.init()</code> is not invoked. But remove <code>@ApplicationScoped</code> and it is working again!</p>
  
  <p>This seems strange for me and I can't find and description of such behaviour.</p>
  
  <p>Furthermore, the specification of <code>javax.inject.Provider.get()</code> says that:</p>
  
  <blockquote>
    <p>Provides a fully-constructed and injected instance of T.</p>
  </blockquote>
  
  <p>So, what's the issue? Is it designed so or this is a bug? And what is more important for me: how to bypass this issue? I need my service to be <code>@ApplicationScoped</code>.</p>