Using Vaadin with CDI
The Vaadin CDI add-on allows you to use Vaadin with CDI.
Adding Dependencies
The vaadin-cdi
add-on should be packaged in your appplication and deployed to an application server that is compliant with Java EE 7 (or newer).
If you are a vaadin-platform
user, add the following dependencies in your pom.xml
.
Example CDI dependencies in pom.xml
.
XML
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-bom</artifactId>
<version>${vaadin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-cdi</artifactId>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
Vaadin Version Compatibility
The version for vaadin-cdi
is managed by vaadin-bom
. For Vaadin 14, the CDI add-on version is 11.0.
You need the CDI API version 1.2 and a provided implementation. In practice, because other Java EE/Jakarta EE features are used together with CDI, the simplest way to ensure compatibility is to use a Java EE 7 (or newer) container.
Configuring the Vaadin CDI Add-on
There are no specific CDI configuration options.
An instance of the CDI-enabled Vaadin servlet, com.vaadin.cdi.CdiVaadinServlet
, is deployed automatically, provided you do not setup a Vaadin servlet in your web.xml
or use the @WebServlet
annotation. You can also customize CdiVaadinServlet
to suit your setup.
Note | See Runtime Configuration for more about about Vaadin servlet configuration. |
Getting Started with CDI and Vaadin Tutorial
Vaadin CDI tutorial is a prebuilt example application that showcases basic usage of a Vaadin and CDI. You can use it to test the concepts and features covered in this documentation.
To start a new project with CDI and Vaadin, select the CDI and Java EE technology stack at vaadin.com/hello-world-starters. This project template includes the necessary configuration and dependencies to start building you own application.