Docs

Documentation versions (currently viewingVaadin 14)
You are viewing documentation for an older Vaadin version. View latest documentation

Service Init Listener

VaadinServiceInitListener can be used to configure RequestHandlers, BootstrapListeners and DependencyFilters. You can also use it to dynamically register routes during the application startup.

The listener gets a ServiceInitEvent which is sent when a Vaadin service is initialized.

public class ApplicationServiceInitListener
        implements VaadinServiceInitListener {

    @Override
    public void serviceInit(ServiceInitEvent event) {
        event.addBootstrapListener(response -> {
            // BoostrapListener to change the bootstrap page
        });

        event.addDependencyFilter((dependencies, filterContext) -> {
            // DependencyFilter to add/remove/change dependencies sent to
            // the client
            return dependencies;
        });

        event.addRequestHandler((session, request, response) -> {
            // RequestHandler to change how responses are handled
            return false;
        });
    }

}

In a Spring Boot project, it is sufficient to register this listener by adding the @Component annotation on the class. In plain Java projects, the listener should be registered as a provider via Java SPI loading facility. To do this you should create META-INF/services resource directory and a provider configuration file with the name com.vaadin.flow.server.VaadinServiceInitListener. This is a text file and it should contain the fully qualified name of the ApplicationServiceInitListener class on its own line. It allows to discover the ApplicationServiceInitListener class, instantiate it and register as a service init listener for the application.

The content of the file should be like this:

com.mycompany.ApplicationServiceInitListener