Skip to content

Eager singleton installer

CoreInstallersBundle / EagerSingletonInstaller


Detects classes annotated with @EagerSingleton annotation and register them in guice injector. It is equivalent of eager singleton registration bind(type).asEagerSingleton().

Useful in case when you have bean not injected by other beans (so guice can't register it through aot). Normally, you would have to manually register such bean in module.

Most likely, such bean will contain initialization logic. Ideal for cases not directly covered by installers. For example:

public class MyListener implements LifeCycle.Listener {

    public MyListener(Environment environment) {

Class will be recognized by eager singleton installer, environment object injected by guice and we manually register listener.

May be used in conjunction with @PostConstruct annotations (e.g. using ext-annotations): installer finds and register bean and post construct annotation could run some logic. Note: this approach is against guice philosophy and should be used for quick prototyping only.