Configuration Properties
You can change the behavior of Vaadin applications by setting configuration properties. You can use either system properties or servlet initialization parameters to set configuration properties. See the full list of properties for details.
See also the Spring-specific instructions for Spring-based applications.
Using System Properties
When using Java system properties to set Vaadin application parameters, the vaadin.
prefix must be specified before each parameter name. The following example shows how to set the pnpm.enable
system property when executing a Maven goal from the command-line:
mvn jetty:run -Dvaadin.pnpm.enable=true
You can configure system properties for Maven plugin executions. For instance, the following sets a Vaadin-specific system property when running the Jetty Maven plugin:
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<systemProperties>
<systemProperty>
<name>vaadin.pushMode</name>
<value>disabled</value>
</systemProperty>
</systemProperties>
</configuration>
</plugin>
Servlet Initialization Parameters
Another option for setting configuration properties is to use servlet initialization parameters. You can use the Servlet 3.0 @WebServlet
annotation. This requires you to configure your servlet, unless you want Vaadin to do it using default parameter values.
@WebServlet(urlPatterns = "/*", name = "myservlet", asyncSupported = true, loadOnStartup = 1,
initParams = { @WebInitParam(name = "pnpm.enable", value = "true") })
public class MyServlet extends VaadinServlet {
}
Yet another approach is to use the web.xml
file. Below is an example of one:
<?xml version="1.0" encoding="UTF-8"?>
<web-app
id="WebApp_ID" version="3.0"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>
com.vaadin.flow.server.VaadinServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>pnpm.enable</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
Note
|
System Properties Override Servlet Parameters
When a system property and a servlet parameter have the same name, the system property is used.
|
Configuration Properties
The following table contains the properties that are defined in the com.vaadin.server.DeploymentConfiguration
and com.vaadin.server.Constants
classes. They’re listed in alphabetical order. If you use Spring Boot, you should add the vaadin.
prefix to these (e.g., change brotli
to vaadin.brotli
).
Property Name | Default Value | Description |
---|---|---|
|
| Decide whether pre-compressed Brotli files should be used if accepted by the browser. Brotli files are created during a production build and the property is used only in production mode. Set to |
|
| Close the Vaadin session if no UI is active. A UI is considered active if it’s open on the client-side and has any activity — besides heartbeat requests. By default, heartbeat requests keep the Vaadin session open even when there is no user interaction. Set to |
|
| Enable live reload. When using a server-side live reload tool, the browser is automatically refreshed after code is rebuilt on the server. Set to |
|
| Optimize frontend resource bundles. All frontend resources in the classpath are included by default in the generated bundle in development mode. When set to |
|
| Enable session serialization. When session serialization is enabled, |
|
| Enable Vaadin to collect usage statistics that are used to guide further development. Statistics are collected based on features that are used in the application. No data is collected in production mode. Some usage statistics are collected through the web browser. See the client-side collector repository for instructions on how to opt out. This applies only to development mode. |
|
| Disable automatic servlet registration that’s required by Vaadin applications. You must register Vaadin servlets if set to |
|
| Disable cross-site request forgery protection. The protection is enabled by default and you should keep it enabled — except for certain types of testing. |
|
| Enable the client-side bootstrap page to include the initial JSON data fragment. |
|
| If {@code true}, navigation error views implementing |
|
| Enable development using the frontend development server instead of an application bundle. This applies only to development mode. |
| 300 seconds (i.e., 5 minutes) | Set the heartbeat interval time. UIs that are open on the client-side send a regular heartbeat to the server indicating that they’re still active even without ongoing user interaction. When the server doesn’t receive a valid heartbeat from a given UI within a certain amount of time, it removes that UI from the session. The interval value is expressed in |
|
| Set the fully-qualified name for the internationalization provider class. To translate strings for localization, the application should implement the |
| 5000 ms (5 seconds) | Set the maximum time in |
|
| Enable |
|
| Set the application to work in production mode. This disables most of the logged information that appears on the server and browser console to improve performance. Development mode JavaScript functions aren’t exported. Any |
|
| Set the timeout in |
|
| Enable server push. The permitted values are |
|
| Specify the servlet mapping used for bidirectional (i.e., "push") client-server communication. Some Java application servers require special context. For example, you can specify websockets with this. |
|
| Include basic timing information in responses that can be used for performance testing. |
|
| Enable synchronized ID checking. The sync ID is used to handle situations in which the client sends a message to a connector that has been removed from the server. It’s set to |
| 300 seconds (i.e., 5 minutes) | Set the number of |
Vaadin Plugin Properties
The following table contains the properties that are only used by Vaadin Maven and Gradle Plugin, and are not applicable for deployment configuration:
System Property | Plugin Configuration | Description | Default Value |
|
| Decide whether |
|
|
| Force Vaadin to create a new production bundle even if there is a usable pre-compiled bundle already. This is required usually when creating an optimized production bundle and to load component sources to the browser on demand — such as when opening a route where these components are used. |
|
|
| Prevent a frontend development bundle from being re-built even if Vaadin decides to use an existing compiled development bundle. This is mainly needed when re-bundling checker in Flow has problems leading to false re-bundling, and one needs a workaround while it’s being resolved. |
|
27BF72FB-1E23-42B0-B540-A602F9AD4571