Eclipse Weld
Eclipse Weld is the reference implementation of the Jakarta Contexts and Dependency Injection (CDI) specification, providing a CDI container for Java applications across Java Secure Element (SE) and Jakarta EE environments (dependency injection / application framework).
- Implements the Jakarta CDI core programming model for type-safe dependency injection (dependency injection).
- Provides a CDI container for both Jakarta EE application servers and standalone Java SE applications (application runtime).
- Supports contextual lifecycle management of beans and scopes, including request, session, application, and custom scopes (application framework).
- Integrates with common Jakarta EE technologies such as servlets, JSF, and EJB through CDI-based injection and interception (enterprise Java integration).
- Offers portable extensions and Stateful Packet Inspection (SPI) for integrating CDI into custom frameworks and runtimes (extensibility framework).
More About Eclipse Weld
Eclipse Weld is the reference implementation of the Jakarta Contexts and Dependency Injection (CDI) specification, which defines a type-safe dependency injection and contextual lifecycle model for Java applications (dependency injection / application framework).
The project targets the problem of structuring Java enterprise and desktop applications around loosely coupled components. By implementing the CDI specification defined within the Jakarta EE platform, Weld supplies a container that manages object lifecycles, dependency wiring, and contextual state, reducing the need for manual factory code or service lookup (enterprise application development).
Weld implements core CDI concepts such as beans, scopes, qualifiers, producers, interceptors, decorators, and events (dependency injection). Beans can be associated with scopes like request, session, application, conversation, and custom scopes, with the container managing their creation and destruction based on context. Qualifiers enable disambiguation between multiple implementations of the same type, while producer methods and fields allow external or legacy objects to participate in CDI-managed injection.
In Jakarta EE environments (enterprise Java platform), Weld integrates with application server infrastructure to provide CDI services to web applications, enterprise components, and presentation technologies. It supports injection into servlets, JSF backing beans, and enterprise beans where enabled by the hosting platform. In Java SE, Weld can be bootstrapped programmatically or via provided utilities to bring the CDI programming model to standalone applications, command-line tools, or integration tests (application runtime).
The project exposes Service Provider Interfaces (SPI) and a portable extensions mechanism that allow third-party frameworks and platform vendors to integrate custom behavior into the CDI lifecycle (extensibility framework). Extensions can observe container bootstrap events, register additional bean metadata, define new scopes, or add interceptors and decorators tailored to a given environment.
Eclipse Weld is hosted under the Eclipse Foundation governance model and aligns with Jakarta EE releases and the CDI specification maintained in that ecosystem (open-source foundation). In enterprise settings, Weld is used both as an embedded CDI engine in application servers and as a standalone DI container in Java SE deployments, supporting modular architectures, testable components, and consistent dependency management across layers of an application (enterprise application architecture).
Within a technical taxonomy, Eclipse Weld fits into categories such as dependency injection container, Jakarta EE reference implementation, and Java application framework for contextual component management.