Contexts and Dependency Injection (CDI)
Jakarta Contexts and Dependency Injection (CDI) is a specification for declarative dependency injection and supporting services.
Enable the Jakarta EE: Contexts and Dependency Injection (CDI) plugin
This functionality relies on the Jakarta EE: Contexts and Dependency Injection (CDI) plugin, which is bundled and enabled in IntelliJ IDEA by default. If the relevant features are not available, make sure that you did not disable the plugin.
Press Ctrl+Alt+S to open the IDE settings and select
.Open the Installed tab, find the Jakarta EE: Contexts and Dependency Injection (CDI) plugin, and select the checkbox next to the plugin name.
You can enable CDI support when creating a new project or module, or add CDI support to an existing module.
Create a new Java Enterprise project with CDI
Since CDI is part of Jakarta EE (formerly known as Java EE), you can add support for it to any Java Enterprise application.
Click New Project on the Welcome screen or select .
From the Generators list, select Jakarta EE.
Name the new project, select a build tool, a language you want to use, and select the Web application project template.
From the JDK list, select the JDK that you want to use in your project.
If the JDK is installed on your computer, but not defined in the IDE, select Add JDK and specify the path to the JDK home directory.
If you don't have the necessary JDK on your computer, select Download JDK.
On the next step of the wizard, select the Java Enterprise version to be supported.
From the Dependencies list, select Contexts and Dependency Injection (CDI).
Click Create.
For more information on how to create a Java Enterprise project, refer to Tutorial: Your first Java EE application.
Enable CDI support for an existing project
Open the build file in the editor (pom.xml or build.gradle depending on the build tool that you use in your project).
Add the following dependency, but make sure to change the version according to your project's requirements:
- Jakarta EE
- <dependency> <groupId>jakarta.enterprise</groupId> <artifactId>jakarta.enterprise.cdi-api</artifactId> <version>4.0.1</version> </dependency>
- Java EE
- <dependency> <groupId>javax.enterprise</groupId> <artifactId>cdi-api</artifactId> <version>2.0.SP1</version> <scope>provided</scope> </dependency>
- Jakarta EE
- implementation 'jakarta.enterprise:jakarta.enterprise.cdi-api:4.0.1'
- Java EE
- compileOnly('org.apache.deltaspike.cdictrl:deltaspike-cdictrl-api:1.9.5')
Press Ctrl+Shift+O to import the changes.
For more information on how to work with build tools, see to Maven or Gradle.