Service Init Listener

VaadinServiceInitListener can be used to configure RequestHandlers, IndexHtmlRequestListener 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 {

    public void serviceInit(ServiceInitEvent event) {
        event.addIndexHtmlRequestListener(response -> {
            // IndexHtmlRequestListener 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: