title: @Singleton @Inject-ed in @WebServlet seems to create multiple instances
body: <p>I've the below <code>@Singleton</code> EJBs:</p>
  
  <pre><code>@Singleton
  public class RunBean {
  
    private int id = new Random().nextInt();
  
    public void printID() {
      System.out.println("ID = " + id);
    }
  
  }
  </code></pre>
  
  
  
  <pre><code>@Singleton
  public class ParentBean {
  
    @Inject
    private RunBean runBean;
  
    public void start() {
      runBean.printID();
    }
  
  }
  </code></pre>
  
  <p>I'm <code>@Inject</code>-ing them in the below web servlet:</p>
  
  <pre><code>public class Servlet extends HttpServlet {
  
    @Inject
    private RunBean runBean;
  
    @Inject
    private ParentBean parentBean;
  
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        runBean.printID();  // out: ID = 69743
        parentBean.start(); // out: ID = 193
    }
  
  }
  </code></pre>
  
  <p>I expected to see the same ID being printed. Why are they different?</p>