Si queremos utilizar Guice en una aplicación web tenemos varias maneras de inicializar el entorno. El objetivo final es más o menos el mismo: configurar el filtro de Guice necesario para la integración del elemento esencial, el ServletModule.
La propia documentación del ServletModule nos proporciona algunas alternativas y más o menos proporciona un camino recomendado con el uso del GuiceServletContextListener.
El problema que he encontrado yo con ese listener es la manera de adaptarlo fácilmente al uso de un segundo listener. Porque necesariamente vamos a tener código de inicialización de nuestra aplicación. Una manera sería usar los dos, otra usar sólo el de Guice. Yo he preferido controlar exactamente cuando inicializo Guice así que sólo hay un listener registrado en el sistema, el mio, y de ahí llamo al de Guice.
Y la clase GuiceBootstrap es la encargada de inicializar Guice con todos los módulos que utilicemos en nuestra aplicación.